loan-front-team / data2graph

3 stars 1 forks source link

异步数据获取存储到store中导致的store数据变化驱动render自动渲染问题 #12

Open lulu27753 opened 6 years ago

lulu27753 commented 6 years ago

在store里面保存了一个data属性,initState为空数组[],数据获取到以后会更新store,而组件的render里面需要store里面的data进行渲染,这会导致render执行两次,一次是componentDidMount时,此时由于从后台fetch数据的过程是异步的,store里面的data值为[];另一次是store的data拿到数据后,store里的data数据发生变化从而执行了componentWillUpdate之后再次执行render。

lulu27753 commented 6 years ago

既然要避免执行两次render,但是异步获取数据必定会导致store的变化,那么有两种解决方式: 1、异步获取的数据不要放到store里面 2、在componentWillUpdate时取出store里面的数据保存下来,并且在render里面渲染该数据