基本方案-
我有一个电子邮件地址输入元素。单击“保存”后,电子邮件将保存到数据库中。刷新时,我希望数据库中保存的值显示为输入的初始值。之后,我想通过常规组件状态控制输入的值。 我遇到的问题是从道具设置初始状态值。 我以为可以通过将prevProps设置为currentProps检查来设置CDU中props的状态。
实际情况-
我要比较的道具是一组对象。因此,CDU的浅表比较无济于事。我该怎么做?
请注意,我没有使用或不想使用任何表单库,因为我的应用程序中只有3个输入字段。 谢谢
答案 0 :(得分:0)
您需要从组件装载上的数据库中获取数据并设置电子邮件的状态。像下面这样的示例(我是在编辑用户上执行的)-
axios.defaults.baseURL = `http://127.0.0.1:8000/api`
答案 1 :(得分:0)
可能的解决方案: 1.为电子邮件创建本地状态,例如
state = {
email: '';
}
static getDerivedStateFromProps(props, state)
从道具(参考链接:https://reactjs.org/docs/react-component.html#static-getderivedstatefromprops)中获取更新值。
static getDerivedStateFromProps(nextProps, prevState) {
// do things with nextProps.email and prevState.email
return {
email: nextProps.someProp,
};
}