React-如何从Redux设置输入元素的初始值?

时间:2019-07-10 05:48:46

标签: javascript reactjs redux

基本方案-

我有一个电子邮件地址输入元素。单击“保存”后,电子邮件将保存到数据库中。刷新时,我希望数据库中保存的值显示为输入的初始值。之后,我想通过常规组件状态控制输入的值。 我遇到的问题是从道具设置初始状态值。 我以为可以通过将prevProps设置为currentProps检查来设置CDU中props的状态。

实际情况-

我要比较的道具是一组对象。因此,CDU的浅表比较无济于事。我该怎么做?

请注意,我没有使用或不想使用任何表单库,因为我的应用程序中只有3个输入字段。 谢谢

2 个答案:

答案 0 :(得分:0)

您需要从组件装载上的数据库中获取数据并设置电子邮件的状态。像下面这样的示例(我是在编辑用户上执行的)-

axios.defaults.baseURL = `http://127.0.0.1:8000/api`

答案 1 :(得分:0)

可能的解决方案:  1.为电子邮件创建本地状态,例如

state = {
 email: '';
}
  1. 在componentDidMount中调度操作,该操作将获取数据并将其存储在redux状态
  2. 一样,使用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, 
  };
}