react-md SelectField onChange无法正确更新

时间:2018-11-19 08:13:24

标签: javascript reactjs material-design

我正在使用export class MyPage { storedArr = []; constructor(private storage: Storage) { this.storage.get('stored') .then(data => { this.storedArr = data; }); } saveToStorage() { this.storedArr.push({ // .push is not a function title: 'blabla', body: 'more blabla' }); this.storage.set('stored', this.storedArr); } } 库,并且尝试使用'react-md'组件,但是当我为SelectField发送函数时,选择字段不再按预期更新

onChange

当我没有在handleSelection = (value, index, event, details) => { // "details.id" is the id of the field which I am using to keep track of state this.setState({[details.id]: value}); } render() { const STRING_SELECTORS = ['At most', 'At least']; return( <div> <SelectField id="calories-selector" className="md-cell selector md-cell--5" menuItems={STRING_SELECTORS} defaultValue="At most" onChange={this.handleSelection) /> ) } 函数中调用this.setState()时,菜单会在单击某项时按预期方式更改,但是当我调用setState时,它会延迟更新选择。如果菜单显示“至多”,而我单击“至少”,它将停留在“至多”,然后,如果我单击“至多”,它将然后更改“至少”。

我在输入字段上也遇到了类似的问题,为了解决这个问题,我使用了handleSelection而不是onBlur,但是onChange库的react-md没有得到以我需要的方式触发。

1 个答案:

答案 0 :(得分:0)

您可以使用SelectField组件的值prop。创建一个状态并将其绑定到SelectField值道具,并将onChange事件处的状态更新为所选值。