如图,输出了两次state的值(不明白为什么),但只需要后面一个,render里面不能直接取setstate后的值吗?
因为 didmount
是最后执行的(生命周期的最后一个), 之前执行过一遍 render
了
等获取到数据后又 setState 又会 render 一次 所以就变两次了
因为插入组件的时候render了一次 拿到数据又会render一次 如果只想渲染一次的话render的返回值外面包个div 然后
shouldComponentUpdate(nextProps, nextState) {
return Boolean(this.state.data);
}
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答928 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
弄清楚
React
的生命周期之后就清楚了。第一次初始化的时候
render
执行了一次。然后setState
又执行了一次。