我有一个控制器,它可以呈现表格和操作按钮。 该表包含Row子项,带有复选框。这是我的渲染功能:
render() {
<div>
<Table items={this.props.items}></Table>
<Actions selectedItems={_.filter(this.props.items, i => i.selected)}
</div>
}
通过检查每一行,我使用“selected”属性更新列表中的项目。 但是现在,如果我想更改所选的指示,我必须重新渲染所有容器,包括表格。 如何在不渲染整个表格的情况下做到这一点? (仅渲染FloatingActions)
这是我的redux映射:
感谢。
答案 0 :(得分:-1)
您应该使用react key
属性并为每一行指定唯一键
在这种情况下,React调用Table的render方法,但只重新渲染DOM中更改的行
看看here。
答案 1 :(得分:-1)
你应该学会在React中思考。每个组件都可以调用render()
函数
如果组件开始看起来不同,那么它实际上只会是reRender。
如果您想手动决定是否需要更改某些内容,您也可以使用
componentWillReceiveProps(newProps)
并检查新道具是否不同
这是来自生命圈的方法,如shouldComponentUpdate
但最好考虑在商店中包含您的观看状态。