react为什么没有触发重新渲染?

<Alert
                        banner
                        type="success"
                        message={
                            <TextLoop mask>
                                {
                                    this.state.eventList.length > 0 ? this.state.eventList.map(item => {
                                        return (
                                            <span>
                                                <span>{item.createTime}</span>
                                                <span>{item.operation}</span>
                                            </span>
                                        )
                                    }) : <span>暂无</span>
                                }
                            </TextLoop>
                        }
                    />

这段代码中变化的数据是以props的形式传给后面的组件的

为什么eventList变了以后

没有重新渲染组件?

如何解决?

阅读 2.5k
1 个回答
<Alert
                        banner
                        type="error"
                        message={
                            this.state.errorList.length > 0 ?
                                <TextLoop mask key={1}>
                                    {
                                        this.state.errorList.map(item => {
                                            return (
                                                <span>
                                                    <span style={{ color: '#888', marginRight: '10px' }}>{item.createTime}</span>
                                                    <span>{item.operation}</span>
                                                </span>
                                            )
                                        })
                                    }
                                </TextLoop> :
                                <TextLoop mask key={2}>
                                    <span>暂无</span>
                                </TextLoop>
                        }
                    />

把判断放在外层 + 强制设一个key
以后可以了~

如有更好的解法 欢迎交流

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