我試圖根據所選選項顯示新的文本輸入。我可以這樣做,如下所示,但輸入的舊值始終存在,無論我將新選擇選項更改爲何值。反應:添加/更改文本輸入基於選定的選項
什麼可能是一個更好的方式來實現這一目標?感謝任何建議。
class loadComponent extends React.Component {
static propTypes = {
......
};
static defaultProps = {
....
};
constructor() {
super();
this.state = {
value: ""
};
}
state = {
...
};
reset = (selected) => {
this.setState({
selectedInputName: selected.target[selected.target.selectedIndex].text,
selectedInputId: selected.target.value
});
};
makeTextInput =() => {
return (
<TextInput
label={this.state.selectedInputName}
placeholder={`Please enter ${this.state.selectedInputName} here!`}
onBlur={event => this.setState({[this.state.selectedInputId]: event.target.value})}
showClear
value={this.state.value}
/>
);
};
render() {
let newInputText = '';
if (this.state.selectedInputId !== '') {
newInputText = this.makeTextInput();
}
return (
<Select
label="What would you like to search with?"
options={this.props.searchOptions}
onChange={selected => this.reset(selected)}
/>
<div className="search margin_bottom_large">
{newInputText}
);
所以基本上你想在輸入類型改變時清除用戶的當前輸入? –
@canaanseaton是的,這正是我想要實現的。 – Shrav
好的,請參閱下面的解決方案。做這樣的事情可以讓你在任何時候重置輸入的值,比如輸入類型改變時。 –