Если я понимаю вашу проблему правильно, это может помочь.
JSFIDDLE
Изменяя какие варианты выбора еще мы автоматически сбросить его, когда мы изменяем первый выбор. Я также сделал второй выбор полностью зависящим от состояния первого select.
<select valueLink={this.linkState('select')}>
{this.renderOptions(Object.keys(this.selectOptions))}
</select>
<select>
{this.renderOptions(this.selectOptions[this.state.select])}
</select>
дайте мне знать, если я неправильно понял вашу проблему.
Update/EDIT:
Я думаю, что я понимаю ваш вопрос немного больше. В этом случае у вас сложная связь с вашими двумя входами и не может полагаться на соотношение 1: 1, которое дает вам this.linkState()
.
В этом случае я добавил собственный метод onChange
для первого выбора и задал значение и начальное значение второго выбора. Поскольку второй выбор не делает ничего интересного, мы можем использовать linkState
на нем просто отлично.
UPDATED FIDDLE
<select onChange={this.handleMainSelectChange}>
{this.renderOptions(Object.keys(this.selectOptions))}
</select>
<select valueLink={this.linkState('secondSelection')}>
{this.renderOptions(this.selectOptions[this.state.mainSelection])}
</select>
И нажмите обработчик
handleMainSelectChange: function (event) {
var value = event.target.value;
this.setState({
mainSelection: value,
secondSelection: this.selectOptions[value][0]
});
Просто чтобы прояснить, вы хотите варианты вашего ребенка выбрать, чтобы изменить, когда значение родительских изменений? –
да, точно, однако просто показать различные параметры при изменении родительского элемента - проблема в том, что мне нужно «сбросить» дочернее значение. – user606521