[英]How to set the value of a select dropdown in javascript dynamically in reactjs
我有一个选择标签,看起来像这样:
<select id="bookName"
onChange={(event) => this.props.handleShelfChange(this.props.book, event.target.value)}>
<option value="moveTo" disabled>Move to...</option>
<option value="currentlyReading">Currently Reading</option>
<option value="wantToRead">Want to Read</option>
<option value="read">Read</option>
<option value="none">None</option>
</select>
因此,在这里,我从另一个组件接收道具。 因此,道具之一是{this.props.book.shelf}
。该道具有4个值:
所以,我想要的是根据来自父组件的props的值,默认情况下应该选择select选项的值。 如何才能做到这一点?
只需将selected
属性传递给所有这样的option
标签
<option selected={this.props.book.shelf === "read"} value="read">Read</option>
我建议使用类似组件的方法。
const elems = ['read', 'wantToRead', 'currentlyReading', 'moveTo'];
export default ({ name, value, book: { shelf } }) => (
<select>
{elems.map((v) => (
<Option value={v} selected={shelf} /> // value coming from prop
))}
</select>
);
const Option = ({ value, selected }) => (
<option value={value} selected={value === selected}>{value}</option>
);
Codesandbox链接: https ://codesandbox.io/s/x9m9nx5ynp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.