记使用React的hooks中,出现setXXX方法无法刷新页面情况

在使用React的新特性hooks的时候,出现了一个情况。当要刷新的是对象数组时,页面无法及时刷新。经过断点跟踪,确实走到setXXX方法中。但是页面无法刷新,当另外一个变量触发页面刷新时,才跟着一起刷新。大概如下:

```

 const [text,setText] = useState("");

 const [messageList,setMessageList] = useState([]);

```

 其中text是输入框的内容,messageList的对话内容。messageList为对象数组[{...},{...}]

 当直接更新对话内容时,无法触发页面。直到setText触发刷新后才跟随一起刷新呈现。



解决:

 新增一个变量const [refresh,setRefresh] = useState(false);

```

useEffect(()=>{

   refresh &&setTimeout(()=>setRefresh(false));

},[refresh]);

```

在setMessageList的使用处同时使用setRefresh

```

setMessageList(temp);

setRefresh(true);

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容