使用axios不会重新渲染我的React Native组件

我在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。

评论