【发布时间】:2019-05-28 15:26:47
【问题描述】:
我有一个 Select 标签,允许用户在 2-7 人之间进行选择, 我还有一个 onChange 事件,它将该数字保存到状态。 之后,它将调用 updateMenuSelect 函数并渲染 x 数量的选择标签。问题是我希望 updateMenuSelect 中的每个选项都是 Meal #X,而不是之前选择的项目。
updateMenuSelect() {
const menuSelector = [];
for (let i = 0; i < this.state.personCount; i++) {
menuSelector.push(
<div>
<select onChange={this.addMeal} name={i}>
<option value={0} selected>
Meal #{i + 1}
</option>
<option value={15}>Cheesy Stuffed BBQ Pork Burgers</option>
<option value={17}>Tex-Mex Cheese-Stuffed Burgers</option>
<option value={20}>Fiesta Chicken Tacos</option>
<option value={24}>Apricot Balsamic-Glazed Pork Tenderloin</option>
<option value={15}>Lemon Pepper Chicken Linguine</option>
</select>
</div>
);
}
return <div>{menuSelector}</div>;
}
例如,假设我选择了 3 个人,然后它将呈现 3 个选择,每个选择具有相同的选项。如果对于所有 3 个,我选择“Fiesta Chicken Tacos”,然后我将人数更新为 6,它将呈现 6 个选择标签,但前 3 个仍然有“Fiesta Chicken Tacos”。我怎样才能使选项中的文本重置? 我有一个有效的反应沙箱链接https://codesandbox.io/s/8z20mnkk38
【问题讨论】:
-
我会添加一个包装器组件,它发送一个回调,并在更改触发回调时,让包装器重新呈现所有选择
标签: javascript reactjs forms select