javascript - 使 getDerivedStateFromProps 在 props 更新时表现得像 componentDidMount
问题描述
我有通过 props 进行通信的 React 父子组件,并且子组件使用提交功能进行更新。
父类:
handleSubmit = () => {
this.setState({
items: Items // imported from dummy data
})
}
// truncated (inside render function, state destructuring, etc)
<Form submit={this.handleSubmit} />
<Table
data={items}
currentCards={currentCards}
currentPage={currentPage}
totalPages={totalPages}
/>
儿童班:
// truncated (class Table, props constructor, set state from props)
static getDerivedStateFromProps(props, state) {
if (props.data !== state.data) {
return {
data: props.data
};
}
return null;
}
// truncated (inside render function, state destructuring, etc)
<Pagination
totalRecords={totalCards}
pageLimit={10}
pageNeighbours={1}
onPageChanged={onPageChanged}
/>
<tbody>
{currentCards.map((item, key) => (
<tr key={key || "0"}>
// truncated
分页onPageChanged
在第一次加载时启动,items
仍然为空,但不是在 handleSubmit
按下时(触发getDerivedStateFromProps
处理项目/数据以填充currentCards
)。
onPageChanged
我确认没有启动分页,因为我在孩子的内部和内部getDerivedStateFromProps
设置了一个断点,在提交时已经更新(但不是因为它需要首先启动)Pagination
data
render
currentCards
onPageChanged
啊,我的Pagination
代码也是基于这个
简而言之,当使用 检索数据时如何重新计算分页handleSubmit
?
更新:
这是我正在尝试做的 CodeSandbox,如果您单击提交,Pagination
则不会重新安装
解决方案
推荐阅读
- reporting-services - 在 SSRS 中,如何在可见性表达式解析后有条件地格式化表格行的背景颜色?
- soap - 没有标头的 SOAP 消息 - 如何处理?
- excel - 突出显示与所选单元格对应的行/列的最快方法
- python - 如果我在尝试检索值时指定参数,则会出现“对象不可调用”错误
- java - 我如何正确引用此代码中的石头重量?
- javascript - 扩展 Object.setPrototypeOf() 与 Object.create
- amazon-web-services - 如何使用 Amazon ECS 运行 docker 任务 - 出现错误`STOPPED (CannotStartContainerError: Error response from dae)`
- ios - Phonegap/Cordova Barcodescanner 在最新的 ios 13 上再次全屏显示
- deployment - 如何将ansible字符串转换为浮点数并使用该值与浮点值进行比较
- git - VSCode:启用或禁用自上次 git 提交后修改的编辑器选项卡,使用修改后的选项卡颜色显示 git 状态