【发布时间】:2021-01-08 02:05:53
【问题描述】:
我目前正在尝试将 react-sortable-hoc 添加到列表组件中,当我通过道具更改传入的项目列表时遇到了许多错误。例如:如果我向数组中添加一个项目,并且我检查列表的传入道具,可排序组件中的道具正在更改(我看到列表组件道具中的新项目),但我无法获取重新渲染的组件。我尝试过 shouldComponentUpdate、getDerivedStateFromProps、使用 PureComponent 而不是 Component、forceUpdate、hook 整个事情并为 props 的任何更改设置 useEffect,没有任何事情导致重新渲染,我知道新列表正在进入组件。
是否有其他人遇到同样的问题,或者有没有人找到解决方法?
这是我设置道具/状态的方式,以及我如何知道道具正在改变:
class MobileListItems extends Component {
state = {
items: this.props.listItems,
}
.
.
.
render() {
console.log('this.props.listItems', this.props.listItems)
console.log('this.state.items', this.state.items)
在我对一些东西进行排序并尝试添加另一个项目后,this.props.listItems 会增加 1,但无论我尝试过上述哪种方法都不会重新渲染。
【问题讨论】:
标签: reactjs material-ui react-sortable-hoc