在<select>
菜单的React组件中,我需要selected
在反映应用程序状态的选项上设置属性。
在中render()
,将optionState
其从状态所有者传递到SortMenu组件。选项值props
从JSON 传入。
render: function() {
var options = [],
optionState = this.props.optionState;
this.props.options.forEach(function(option) {
var selected = (optionState === option.value) ? ' selected' : '';
options.push(
<option value={option.value}{selected}>{option.label}</option>
);
});
// pass {options} to the select menu jsx
但是,这会在JSX编译上触发语法错误。
这样做可以摆脱语法错误,但显然不能解决问题:
var selected = (optionState === option.value) ? 'selected' : 'false';
<option value={option.value} selected={selected}>{option.label}</option>
我也尝试过这个:
var selected = (optionState === option.value) ? true : false;
<option value={option.value} {selected ? 'selected' : ''}>{option.label}</option>
有解决此问题的推荐方法吗?
I got around a similar issue by setting defaultProps:
<select value="this.props.propName" ...
So now I avoid errors on compilation if my prop does not exist until mounting.