这样做:
onPress={() => {
this.setState({
myArray: []
});
const { myArray } = this.state;
console.log(myArray);
}}
期望数组为空,但它仍包含旧值。如果我再次按下该按钮,或者在程序中的其他位置使用console.log,则该数组为空。我认为这是由于this.state是异步的。这是一个问题,因为我计划将数组保存到AsyncStore
,而不是console.log,而不是这样:
AsyncStorage.setItem(
"@ShoppingListStore: ShoppingListKey",
JSON.stringify(myArray)
);
如果在设置状态后我无法直接保存数组,我可以在哪里进行操作?有没有办法监听状态来完成设置,然后运行AsyncStore代码?
答案 0 :(得分:1)
尝试类似的东西:
onPress={() => {
this.setState({
...this.state, myArray: []
}, () => console.log(this.state.myArray));
}}