Javascript 材质UI文本字段和Redux状态尝试设置默认值时的奇怪行为?

Javascript 材质UI文本字段和Redux状态尝试设置默认值时的奇怪行为?,javascript,reactjs,redux,material-ui,Javascript,Reactjs,Redux,Material Ui,我试图通过从我的Redux状态获取值来设置文本字段的defaultValue属性,但是它没有相应地更新 我已将值作为道具从容器组件向下传递到编辑组件,如下所示: render() { const {data} = this.props return ( <editcomponent value={this.props.data.value} ) } const mapStateToProps = (state) => { retur

我试图通过从我的Redux状态获取值来设置文本字段的defaultValue属性,但是它没有相应地更新

我已将值作为道具从容器组件向下传递到编辑组件,如下所示:

render() {

const {data} = this.props

     return (
          <editcomponent value={this.props.data.value}
     )
}

const mapStateToProps = (state) => {

  return {
    data: state.dataReducer
  }

}
render(){
const{data}=this.props
返回(
{
返回{
数据:state.dataReducer
}
}
在我的编辑组件中,我尝试先显示它,这很好:

render() {

     return (
          <h3>this.props.value</h3>
     )
}
render(){
返回(
这是道具的价值
)
}
当我在Redux状态下用新数据重新加载页面时,它会相应地更新。但是,当我尝试完全相同的操作时,除了设置defaultValue的文本字段外,它不会更新

这不起作用:

render() {

     return (
          <TextField id="textfield_id" defaultValue={this.props.value}/>
     )
}
render(){
返回(
)
}
它将在初始时间起作用,然后当我用新数据重新加载页面时,它不会将defaultValue设置为新数据,而是保持原来的状态。如果改用value,它将更改数据,但不允许我再编辑文本框值


如何解决此问题?我希望能够通过我的Redux状态设置defaultValue,并允许在用户更改/删除文本框中的内容时更改该值。

我也遇到了此错误,通过先将道具映射到一个状态,然后使用该状态替换为值道具来解决

function updateValue(e) {
  this.setState({ value: e.target.value });
}

render {
  return (
    <TextField id="textfield_id" value={this.state.value} onChange={this.updateValue}/>
  );
}
函数更新值(e){
this.setState({value:e.target.value});
}
渲染{
返回(
);
}

我也有同样的问题,我通过以下方法解决了这个问题:

不要使用
defaultValue
,而是在状态中设置
initialValues

初始值:{
姓名:theName
}