選択したオプションに基づいて新しいテキスト入力を表示しようとしています。私は以下のようにそれを行うことができますが、私が新しい選択オプションをどのように変更しても、入力された古い値は常に存在します。React:選択したオプションのテキスト入力ベースの追加/変更
これを達成するにはどうすればよいでしょうか?提案を感謝してください。
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
大丈夫、下の私の解決策を見てください。そのようなことをすると、いつでも入力の値がリセットされます。たとえば、入力の種類が変わったときなどです。 –