如何使FormControl在页面刷新时保留其选定的值

时间:2017-10-26 04:59:35

标签: reactjs

<FormControl componentClass="select" onChange={handleOptionSelect} value={this.state.selected}>
    <option value="default"></option>
    <option value="getasinlimit">Get ASIN Limit</option>
    <option value="updateasinlimit">Create/Update ASIN Limit</option>
    <option value="deleteasinlimit">Delete ASIN Limit</option>
</FormControl>

有没有办法可以在reactjs中以编程方式设置所选表单的值?

如果我选择“默认”以外的任何选项并刷新页面,则路径和页面内容保持不变,但所选选项将恢复为默认值。我希望它在页面刷新时保持不变。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

您可以使用会话存储来保存所选值

class App extends React.Component {
  constructor(props){
    super(props);

    this.state = {
      selected : null;
    }
  }

  componentDidMount(){
    let selected = window.sessionStorage.getItem("selected");
    this.setState({ selected : selected });
  }

  handleOptionSelect(e){
    this.setState({ selected : e.target.value });
    window.sessionStorage.setItem("selected", e.target.value);
  }

  render() {

      return (
        <FormControl componentClass="select" onChange={this.handleOptionSelect.bind(this)} value={this.state.selected}>
          <option value="default"></option>
          <option value="getasinlimit">Get ASIN Limit</option>
          <option value="updateasinlimit">Create/Update ASIN Limit</option>
          <option value="deleteasinlimit">Delete ASIN Limit</option>
        </FormControl>
      )

  }
}

答案 1 :(得分:0)

将它放在sessionStorage中。

// Save data to sessionStorage
sessionStorage.setItem('key', 'value');

// Get saved data from sessionStorage
var data = sessionStorage.getItem('key');

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

或localStorage如果要在关闭浏览器后返回时保留该值

localStorage.setItem('myCat', 'Tom');
var cat = localStorage.getItem("myCat");

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage