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

2020-01-19  本文已影响0人  Sabertor

在使用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);

```

上一篇下一篇

猜你喜欢

热点阅读