为什么react里只用componentDidMount()获取数据render给我执行了4次

@connect(({ editnews,global, loading }) => ({
  global,
  editnews,
  loading: loading.models.editnews,
  timeLoading: loading.effects['editnews/getCollections'],
}))
componentDidMount() {
    message.warning("请修改参数点击搜索,筛选展示数据!",10)
    const { dispatch} = this.props;
    dispatch({
      type: 'editnews/getCollections',
      payload: {}
    });
  }
render() {
    const {
      editnews: { data, data: { pagination }, collections },
      loading,
      timeLoading,
    } = this.props;
    console.log(pagination)

clipboard.png

阅读 2.9k
2 个回答

在一个组件中 stateprops改变 都会执行render方法,可能是因为你的其他数据发生了改变;
如果不想执行render方法,可以在 shouldComponentUpdate 方法中进行判断,return false就可以阻止render,这也是react官方推荐的解决方案。

在查找这个问题前,先熟悉下react的生命周期函数,比如可以看看这篇文章 http://kuaibao.qq.com/s/20190... ,看完之后在接收state props变更的那个生命周期打印下这两个人值,就会发现其实一直在变化

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题