![](/img/trans.png)
[英]Material-ui dialog flickering when using redux for open state
[英]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.