Очень новое реагировать. Я создаю страницу с серией выпадающих меню, и идея заключается в том, что когда вы выбираете опцию в одном раскрывающемся списке, то под ним выставляется одинаковое выпадающее меню.Реакция визуализации компонента на клик после другого компонента реакции
Все элементы div и selects/options являются компонентами React, и я попытался дать одному из них начальное состояние «firstTime == true», а затем, когда вы нажмете опцию (если это правда), она отображает другую <Dropdown />
элемент ниже события.target.parentElement.
var Dropdown = React.createClass({
getInitialState: function() {
return{firstTime: true};
},
change: function(event){
var x = event.target;
this.state.firstTime==true ? ReactDOM.render(<Dropdown options={OptionChoices} dropdownClass="Poop" />, wrapper) : console.log("oh well");
this.setState({firstTime: false});
},
render: function() {
return (
<select onChange={this.change} className={this.props.dropdownClass}>
{this.props.options.map(function(option){
return (
<Option value={option.value} key={option.value}>{option.label}</Option>
);
})}
</select>
);
}
});
К сожалению, он продолжает расти: «Целевой контейнер не является элементом DOM». что имеет смысл, потому что я пытаюсь включить его в элемент, созданный с помощью реакции, но не слишком полезен для того, что я пытаюсь сделать.
Любая помощь приветствуется, и извините, если это действительно основной вопрос.
Fiddle: https://jsfiddle.net/y4wfLy1z/
Вы никогда не должны вызывать 'ReactDOM.render' более чем один раз. Вы должны использовать состояние и итерацию через ряд выпадающих компонентов, как и вы, для вариантов выпадающего списка. Отметьте этот ответ от нескольких минут назад: http://stackoverflow.com/a/34667295/259038 –