setState更新后如何调用函数(回调)

时间:2020-10-01 02:43:38

标签: react-native asynchronous promise callback hook

我想在setVote之前先进行setVoting,然后再运行sendVote。但是无论如何它首先运行sendVote。我该如何解决?我使用React Hook ...所以很难。请帮我!!!非常感谢。

    <TouchableOpacity onPress={() => {setVoting(!voting); setVote(voting?vote-1:vote+1); sendVote();}}>
       <Ionicons 
        name= {voting?'md-star':'md-star-outline'}
        size={24} 
        color={'#aa4fff'} 
       />
    </TouchableOpacity>

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

useEffect(()=>{
   setVote(voting?vote-1:vote+1);
},[voting]);

useEffect(()=>{
   sendVote();
},[vote]);

...然后从onPress中删除setVote和sendVote:

<TouchableOpacity onPress={() => setVoting(!voting)}>
       <Ionicons 
        name= {voting?'md-star':'md-star-outline'}
        size={24} 
        color={'#aa4fff'} 
       />
</TouchableOpacity>