为了账号安全,请及时绑定邮箱和手机立即绑定

如何维护Sortable容器的子组件的状态?

如何维护Sortable容器的子组件的状态?

胡子哥哥 2021-09-04 17:37:16
如下面的代码所示,App 组件有一个状态。这个状态的属性通过 props 传递给子组件。但是一旦 App 组件中的状态发生变化,Sortable 组件内的子组件就不会更新。但是这个 Sortable 容器之外的子组件会像往常一样更新(重新渲染)。如何在每次状态更改时呈现这些可排序的子组件?这是代码(简化):应用程序.js:import Sortable from 'react-sortablejs';import Child from './Child';class App extends React.Component {  constructor(props) {    super(props);    this.state = {      text1: "Text1",      text2: "Text2"    }  }  render() {    return (      <div className="App">        <Sortable>          <Child text={this.state.text1} />          <Child text={this.state.text2} />        </Sortable>        <Child text={this.state.text1} />      </div>    );  }}Child.js:从“反应”导入反应;export default class Child extends React.Component {    constructor(props) {        super(props);    }    render() {        return (<p>{this.props.text}</p>)    }}页面加载时的样子:...在状态更新后:
查看完整描述

1 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

看起来Sortable组件shouldComponentUpdate 在这里覆盖:


shouldComponentUpdate(nextProps) {

    // If onChange is null, it is an UnControlled component

    // Don't let React re-render it by setting return to false

    if (!nextProps.onChange) {

         return false;

    }

    return true;

}

基本上,它设置为仅在有onChange处理程序时才更改。您希望传递这样的方法来确定当状态发生App变化时要做什么(如果有的话)。


查看完整回答
反对 回复 2021-09-04
  • 1 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信