Reactjs 防止组件在redux同级状态更改时重新提交
ParentComponent呈现ChildComponent,该组件呈现从Reactjs 防止组件在redux同级状态更改时重新提交,reactjs,redux,react-redux,Reactjs,Redux,React Redux,ParentComponent呈现ChildComponent,该组件呈现从state.foo获取的对象数组。在每个state.foo项中都有一个按钮,该按钮触发一个操作,该操作将更新state.bar 当我单击此按钮时,整个foo集合将重新呈现,即使我只是调用一个操作来更新状态树的条切片。因此,当单击按钮更新栏时,集合本身将消失,然后在重新渲染后重新出现 如何防止状态树的foo切片重新排序,以便在更新状态树的bar切片时保持渲染状态? class ParentComponent extends
state.foo
获取的对象数组。在每个state.foo
项中都有一个按钮,该按钮触发一个操作,该操作将更新state.bar
当我单击此按钮时,整个foo
集合将重新呈现,即使我只是调用一个操作来更新状态树的条
切片。因此,当单击按钮更新栏时,集合本身将消失,然后在重新渲染后重新出现
如何防止状态树的foo
切片重新排序,以便在更新状态树的bar
切片时保持渲染状态?
class ParentComponent extends React.Component {
render() {
return <ChildComponent
updateBarInStateTree={this.props.updateBarInStateTree}
foo={this.props.foo}
bar={this.props.bar}
/>
}
}
const mapStateToProps = (state) => {
return {
foo: state.foo,
bar: state.bar,
}
}
const mapDispatchToProps = (dispatch) => {
return {
updateBarInStateTree: () => dispatch(actionThatWillReturnNewBarInStateTree())
}
}
export default connect(mapStateToProps, mapDispatchToProps)(ParentComponent);
类ParentComponent扩展了React.Component{
render(){
返回
}
}
常量mapStateToProps=(状态)=>{
返回{
foo:state.foo,
bar:state.bar,
}
}
const mapDispatchToProps=(调度)=>{
返回{
UpdateBalanstateTree:()=>分派(将返回NewBalanstateTree()的操作)
}
}
导出默认连接(MapStateTrops、mapDispatchToProps)(ParentComponent);
class-ChildComponent扩展了React.Component{
render(){
返回(
{this.props.foo.map(f=>(
单击我更新栏
))
}
)
}
}
为什么在未在ChildComponents中使用时将条形图作为道具传入?如果您需要它,那么可以考虑使用<代码> BooDeCuffTebug更新>代码>检查特定的道具更改。在渲染中<代码> bar >代码>将出现在<代码> Foo项目中,因此它得到USEDFF <代码> BAR <代码>用于<代码>子组件< /代码>,你不想让他们在更新bar
时重新渲染吗?我不想让foo
重新渲染,因为当foo
重新渲染时,整个集合从页面上消失,然后又回来——有点像眨眼。相反,我只想启动一个更新bar
的操作,这样我就可以在返回时获取bar
的值,并将其渲染到正确的位置,而无需触摸foo
。
class ChildComponent extends React.Component {
render() {
return (
<div>
{this.props.foo.map(f => (
<div onClick={this.props.updateBarInStateTree}>Click me to update bar</div>
))
}
<div>
)
}
}