反应 - 重新渲染道具变化是错误的吗?

时间:2018-04-13 13:58:08

标签: javascript reactjs

我在简单的待办事项列表中有来自数据库的json数据。我实现了它,所以我将这些数据保存在props中,然后将其传递给子组件。我现在使用状态的唯一方法是过滤这些数据:(显示全部,显示已完成,显示正在进行中)。

现在我想将backtrace添加到数据库中。这意味着添加新项目/删除旧项目。问题是,如果我实现添加按钮,将新任务添加到数据库,它将不会自动重新呈现应用程序,因此更改将不会显示,直到我刷新页面。

所以我的问题是。在这种情况下,在React强制调用渲染是否正确?或者我是否应该完全修改应用程序并更改现在支持的任务数组,并在更新数据库的同时更新它并进行更新?

感谢您的回答:)

2 个答案:

答案 0 :(得分:0)

我认为需要重新渲染是基于组件是否应该更新。在这种情况下,应该有新项目。

至于搬到州,我不认为你需要重写你的组件来使用状态而不是道具。你可以实现shouldComponentUpdate并检查待办事项列表是否已经改变(小心不要改变todo list prop!)。

如果你正在使用React.PureComponent,那么你不需要打扰lock cmpxchg16b,它会自动更新任何状态或道具更改

答案 1 :(得分:0)

将您的数据(在Json中)用作React Function Component或Class Component的道具非常精细且经常使用。

假设您使用类组件(或只是您的React App组件)并使数据在该组件的状态下保持最新,您可以添加成员函数来添加和删除项目。我建议保持用户界面与用户操作同步,并且可能有表单提交处理程序来处理所有数据库更改(如果这对您的情况可行)。

相关问题