代码之家  ›  专栏  ›  技术社区  ›  Bargain23

反应-刷新页面后不显示所选值

  •  0
  • Bargain23  · 技术社区  · 7 年前

    所以,我在用 react-select 让用户从选项列表中选择一个选项。它应该随着变化而更新。我已经验证了所选的选项确实正在更新到数据库中,并且在React chrome工具中检查它时,React正在识别输入。令人费解的是,刷新页面后,它是如何不显示的。

    class ContractBasicForm extends React.Component {
      constructor (props) {
        super(props)
        this.state = {
          contractingEntity: props.contracting_entity
      }
    
      componentWillReceiveProps(nextProps) {
        this.setState({
          contractingEntity: nextProps.contracting_entity
        })
      }
    
    
      autoSetState = (newState) => {
        this.setState(newState)
        this.props.formSubmit()
      }
    
      render () {
        return(
          <div className="container-fluid">
            <section className="row ml-2 mr-2 mt-2">
              <article className="col-12 side-modal-form">
                <SelectInput
                  header="Contracting Entity"
                  name="contract[contracting_entity]"
                  options={this.props.contracting_entity_opts}
                  value={this.state.contracting_entity}
                  userCanEdit={this.props.user_can_edit}
                  multi={false}
                  onChange={(e) => {
                    this.autoSetState({contracting_entity: e.value})
                  }}
                  />
              </article>
            </section>
          </div>
        )
      }
    }
    

    我有另一个输入叫做 Stage 这和 ContractingEntity

    <SelectInput
      header="Stage"
      name="contract[stage]"
      options={this.props.stage_opts}
      value={this.state.stage}
      userCanEdit={this.props.user_can_edit}
      multi={false}
      onChange={(e) => {
        this.autoSetState({stage: e.value})
      }}
      />
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Sakhi Mansoor    7 年前

    React应用程序状态将在页面刷新时初始化。如果希望在页面刷新后保留这些数据,则需要将其持久保存在localStorage中。这被认为是react中的反模式,除非必要,否则建议不要使用。