如何使用更新的defaultValue重新渲染DatePicker?

时间:2016-03-04 14:59:18

标签: javascript reactjs datepicker material-ui

我在以下场景中使用DatePicker:

  1. 呈现使用DatePicker
  2. 的表单
  3. 在componentDidMount上,获取表单的已保存信息(如果之前已保存)
  4. 将DatePicker的道具defaultValueundefined设置为提取的值
  5. 看起来很简单。但是,由于DatePicker的行为仅在第一次渲染时呈现defaultValue,因此在获取值时显然为空(第二次渲染)。

    我看到的其他两个选项:

    1. 有一个受控制的组件 - 手动操作值(在获取时提供它,然后在onChange触发时更改它)

    2. 只有在无法获取(新表单)或获取数据并准备填充数据时,才会呈现DatePicker。

    3. 对于实现这一目标的最佳方法有什么想法?

1 个答案:

答案 0 :(得分:0)

不是填充defaultDate道具,而是将value道具挂钩到您想要设置的任何道具。使用这种方法,您还需要连接onChange处理程序。它看起来像这样:

onChange(event, newValue) {
  this.setState({myDate: newValue})
},
render() {
  return (
    ...
    <DatePicker value={this.state.myDate} onChange={this.onChangeHandler}>
    ...
  )
},

或者,您可以使用React的LinkedStateMixinDatePicker的{​​{1}}道具来使用双向绑定功能。