我在React Native中使用钩子。这是我的代码:
useEffect(() => {
if (var1.length > 0 ){
let sym = [];
var1.map((items) => {
let count = 0;
state.map((stateItems) => {
if(items === stateItems.name) {
count = count + 1;
}
})
if (count === 0) {
sym.push(items)
}
});
async function getAllStates (sym) {
let stateValues = state;
await Promise.all(sym.map(obj =>
axios.get(ServerURL + "/note?name=" + obj).then(response => {
setState([...state,response.data[0]]);
})
));
}
getAllStates (sym);
}
}, [var1]);
这将成功运行,没有任何错误。但是,当状态显示如下时,我看不到状态中添加的最新值。它显示所有先前的值。当刷新整个应用程序时,我可以看到我的增值。
return (
<View style={styles.container}>
<Text style = {{color:"white"}}>
{
state.map( (item, key) =>{
return(
<Text key = {key} style = {{color:"white"}}> {item.name} </Text>
)
})
}
</Text>
</View>
);
有人可以告诉我为什么会这样吗?我希望在axios调用后立即看到数据呈现。我正在使用React Native。