簡體   English   中英

Material-UI Text Field和Redux狀態試圖設置默認值的奇怪行為?

[英]Strange behaviour with Material-UI Text Field and Redux state trying to set default value?

我試圖通過從我的Redux狀態獲取值來為文本字段設置defaultValue屬性,但是它沒有相應地更新。

我已將值作為prop從容器組件傳遞到我的編輯組件,如下所示:

render() {

const {data} = this.props

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

const mapStateToProps = (state) => {

  return {
    data: state.dataReducer
  }

}

在我的編輯組件中,我試圖首先顯示它,這工作正常:

render() {

     return (
          <h3>this.props.value</h3>
     )
}

當我在Redux狀態下重新加載包含新數據的頁面時,它會相應地更新。 但是,當我嘗試完全相同的東西,除了我正在設置defaultValue的文本字段,它不會更新。

這不起作用:

render() {

     return (
          <TextField id="textfield_id" defaultValue={this.props.value}/>
     )
}

它將在初始時間工作,然后當我用新數據重新加載頁面時,它不會將defaultValue設置為新數據,它保持與原始數據相同。 如果我使用值而不是它將更改數據,但它不允許我再編輯文本框值。

我怎么解決這個問題? 我希望能夠通過Redux狀態設置defaultValue,並允許在用戶更改/刪除文本框中的內容時更改該值。

我遇到了同樣的問題,我通過以下方式修復: https//stackoverflow.com/a/36959225/842097

不要使用defaultValue ,而是在狀態中設置initialValues

initialValues: { name: theName }

我也遇到了這個錯誤,通過首先將道具映射到狀態然后使用該狀態而不是值prop來解決。

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

render {
  return (
    <TextField id="textfield_id" value={this.state.value} onChange={this.updateValue}/>
  );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM