我目前正在尝试添加react-sorable-hoc到列表组件,当我通过道具更改传入的项目列表时,我遇到了一些错误。例如:如果我向数组中添加一个项目,并且我检查列表中的传入道具,可排序组件中的道具正在改变(我在列表组件道具中看到新项目),但是我不能让组件重新渲染。我已经尝试了应该ComponentUpdate,getDerivedStateFromProps,使用PureComponent而不是Component,forceUpdate,钩住整件事,并为道具的任何变化设置一个use效应,没有什么会导致重新渲染,我知道新列表正在到达组件。
是否有其他人也有同样的问题,或者有人找到了解决方法?
以下是我如何设置道具/状态,以及我如何知道道具正在变化:
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,但无论我尝试了上述哪种方法,都不会重新加载。
哎呀,黛西!你们不要把你们的道具复制到州里去。别跟我一样!
删除状态管理并将其转化为一个函数修复了我遇到的所有bug。
请考虑以下示例: 我希望将值传递到中,作为哑输入组件的道具。然而,它从不重新呈现它。
问题内容: 我正在尝试将表示性组件与容器组件分开。我有一个和一个。容器负责触发redux操作,以根据当前用户获取适当的网站。 问题是在最初呈现容器组件之后,异步获取了当前用户。这意味着容器组件不知道它需要重新执行其函数中的代码,该代码将更新数据以发送到。我认为我需要在其props(user)之一更改时重新渲染容器组件。如何正确执行此操作? 问题答案: 您必须在方法中添加条件。 该示例用于比较对象。
我试图将表示组件与容器组件分开。我有一个和一个。容器负责触发redux操作,以基于当前用户获取适当的站点。 问题在于,在容器组件最初呈现之后,当前用户是异步获取的。这意味着容器组件不知道需要在其函数中重新执行代码,该函数将更新数据以发送到。我想当容器组件的一个道具(用户)发生变化时,我需要重新渲染它。如何正确地执行此操作?
我有以下结构: ChildComponent只是呈现值:
我不知道为什么这不起作用 单击该按钮显然会更改道具,但旧的仍在输入中!那么什么给了?我做错了什么?这是虫子吗?有变通办法吗?
我有问题的反应形式和管理的状态适当。我在一个表单中有一个时间输入字段(在一个模态中)。初始值在中设置为状态变量,并从父组件传入。这本身就很好用。 当我想通过父组件更新默认的start_time值时,问题就来了。更新本身通过在父组件中发生。但是,在我的表单中,默认的start_time值从不更改,因为它只在中定义过一次。 我尝试使用通过强制更改状态,这确实起到了作用,但给了我错误。 所以我的问题是,