【问题标题】:Redux - how to save input value despite reRender?Redux - 尽管重新渲染,如何保存输入值?
【发布时间】:2016-09-12 22:38:38
【问题描述】:

Redux - 尽管重新渲染,如何保存输入值? 现在它可以放价值,保存零钱,但只有 1 点数据之前 所以当我点击 2-nd - 会得到 1-st

constructor(props) {
    super(props);
    this.fields = {}
}
....
onChangeName(e) {
    this.fields.tableName_input = e.target.value
}
onChangeParticipants(e) {
    this.fields.tableParticipants_select = e.target.value
}
componentDidUpdate(params){
    if (params.editing){
        console.log(params)
        let tableName_input = this.fields.tableName_input && this.fields.tableName_input || params.table.name
        ReactDOM.findDOMNode(this.refs.tableName_input).value = tableName_input
        let tableParticipants_select = this.fields.tableParticipants_select && this.fields.tableParticipants_select || params.table.participants
        ReactDOM.findDOMNode(this.refs.tableParticipants_select).value = tableParticipants_select
    }
}

【问题讨论】:

  • 你的问题中没有redux相关的代码。
  • 问题出在 Redux 调度中 - 当使用 params.editing = true 调用 Editing reducer 时,但所有其他调用默认情况下,但该参数仍然为 true。我在上面写的组件中的 React 代码中认为这个问题

标签: javascript reactjs redux react-redux redux-form


【解决方案1】:

请添加触发保存的代码,我认为问题在于您如何更新字段参数。

但是,作为一个属性这样做是不好的,你应该保持字段值作为一个状态,如果你通过 redux 进行管理,我建议你看看redux-form,这个库非常棒,并让您将表单字段管理为 redux 状态,这对于测试和保持组件纯净很有用,内容将处于 redux 状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2022-11-20
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多