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