【发布时间】:2020-02-08 09:12:36
【问题描述】:
在重置表单中的所有状态时,我有 2 个选择的国家/地区输入要重置为默认占位符。我正在使用 2 个状态变量来存储国家/地区,我有一个功能可以重置我的状态,但选择输入不会重置为默认值。它在最后选择的国家/地区保持选中状态。我将状态重置为空,但我无法让它工作。你能帮帮我吗?
class FormularioCalcular extends React.Component {
constructor(props) {
super(props);
this.state = {
moneda1: '',
monto1: '',
moneda1placeholder: 'Cantidad a enviar',
moneda1disable: false,
moneda2: '',
monto2: '',
moneda2placeholder: 'Cantidad a recibir',
moneda2disable: false,
pais1: null,
pais2: null,
disable: false
};
this.timeout = 0;
this.moneda1Cambio = this.moneda1Cambio.bind(this);
this.moneda2Cambio = this.moneda2Cambio.bind(this);
this.baseState = this.state;
}
pais1Cambio = select => {
let value = select.value;
let value2 = prefijoMoneda(value);
this.setState({
pais1: value,
moneda1: value2
});
};
pais2Cambio = select => {
let value = select.value;
let value2 = prefijoMoneda(value);
this.setState({
pais2: value,
moneda2: value2
});
};
resetState = () => {
this.setState(this.baseState);
this.setState({
pais1: null,
pais2: null
});
ReactTooltip.hide();
};
这是我选择的组件,如果我在上面使用 value 选项,它会崩溃,我无法更改它保留在占位符默认消息上的国家/地区。
<Select
name="paisorigen"
onChange={this.pais1Cambio}
options={paises}
className="paisSelectContainer"
classNamePrefix="paisSelect"
placeholder="Pais de origen"
isDisabled={this.state.disable}
/>
<Select
name="paisdestino"
onChange={this.pais2Cambio}
options={paises}
className="paisSelectContainer"
classNamePrefix="paisSelect"
placeholder="Pais destino"
isDisabled={this.state.disable}
/>
更新
值选项崩溃,因为它需要像这样接收和对象的值和标签。
<Select
name="paisorigen"
onChange={this.pais1Cambio}
options={paises}
className="paisSelectContainer"
classNamePrefix="paisSelect"
placeholder="Pais de origen"
isDisabled={this.state.disable}
value={{ value: this.pais1, label: labelPais(this.pais1) }}
/>
但是现在我遇到了一个问题,因为当我单击某个选项时。它保持默认值。这是我正在使用的函数 onChange
pais1Cambio = select => {
let value = select.value;
let value2 = prefijoMoneda(value);
this.setState({
pais1: value,
moneda1: value2
});
};
【问题讨论】:
标签: javascript reactjs react-select