【问题标题】:React Native call a function only onceReact Native 只调用一次函数
【发布时间】:2022-01-13 04:19:20
【问题描述】:

我正在这个应用程序中使用本机反应开发一个应用程序我有这个函数叫做addDetails()这个函数在functionCombined()内部执行另一个函数当用户按下按钮时。在这个应用程序中,functionCombined() 函数将根据每个按钮的按下来执行。但是我只想执行一次addDetails()函数,但是uploadPrices()函数应该根据按钮按下来执行。有什么方法可以实现吗?

基本上我想要的是只在functionCombined() 函数内部执行一次addDetails() 函数。 addDetails() 函数应该在第一次单击按钮时执行,只有在 addDetails() 函数无论用户单击多少次按钮都无法执行之后。有什么方法可以实现吗?

const functionCombined = () => {
            addDetails(); 
            uploadPrices();  
        }  



const addDetails = () => {
              
            db.transaction(txn => {
                txn.executeSql(
                    `INSERT INTO invoices (name, date) VALUES (? , ?)`,
                    [customerName,text],
                    (sqlTxn, res) => {
                        console.log(`${customerName}, ${text} added successfully `); 
                        
                    }, 
                    error => {
                        console.log('error on adding details ' + error.message);
                    },
                );
            });
    
            alert("Successfully Upload Customer Details"); 
              
        };


    
    <Pressable onPress={functionCombined}>

【问题讨论】:

  • 添加一个状态变量..最后在addDetails()中将其设置为true..并检查如果不是true然后执行addDetails()

标签: react-native function call


【解决方案1】:

也许你可以只用一个标志来检查按钮是否被点击,并在标志检查中添加 addDetails() ,例如:

const [buttonClicked, setButtonClicked] = useState(false);

const functionCombined = () => {
      if(!buttonClicked){
          addDetails();
          setButtonClicked(true);
       }
      uploadPrices();  
}

【讨论】:

  • 谢谢这是正确的答案
猜你喜欢
  • 2020-10-25
  • 2020-03-17
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 2018-10-29
  • 1970-01-01
  • 2022-01-27
  • 2017-01-21
相关资源
最近更新 更多