当前位置: 首页 > 知识库问答 >
问题:

React-选择状态改变时不重置值

袁英豪
2023-03-14

我有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();
  };

这是我的选择组件,如果我在它上使用值选项,它崩溃,我不能改变国家保留在占位符默认消息。

        <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
    });
  };

共有1个答案

严景焕
2023-03-14

如果您尝试在构造函数中绑定pais1Cambio和pais2Cambio,它是否起作用?

 类似资料:
  • 我有一个基于url的react组件,它应该导入一些数据,然后在另一个子组件中显示。当页面首次加载时,它将初始数据作为组件状态加载到中。至于进一步的url更改,它们将在export default class Info()中处理。组成部分{ 我的问题是,尽管switch语句中有状态更新,但组件不会重新渲染。我不知道我的方法有什么问题。有人能帮我吗?谢谢 编辑:这是使用而不是的代码:

  • 我正在react中构建简单的todo应用程序,我已经将输入字段作为子元素inputForm元素的一部分。 我可以毫无问题地将函数作为道具从父级传递给子级,但是我不能更新父级状态来存储输入字段上的值。当我在输入字段中键入时,传递的函数正常执行,但当前的托多状态没有更新。 我发现这个问题可以通过使用单一的数据流模式(如通量或回流)来避免,但由于这是我的第一个项目,我想了解如何使用基础知识。 父元素的代

  • 在这种情况下,我更改选择元素并调用数据更新方法。该方法从状态获取值。但是当数据更新时,状态还没有改变。当您再次调用数据更新时,状态已经更新了如何正确进行更新? 反应成分

  • 问题内容: 我一直在学习Redux,尚不清楚的部分是,如何确定使用React State与Redux Store之间的关系,然后分派动作。从到目前为止的阅读来看,看起来我可以使用React状态代替Redux存储,并且仍然可以完成工作。我了解使用Redux存储的关注点分离,只有一个容器组件,其余的作为无状态组件,但是我对如何确定何时使用React state Vs redux存储的决定不清楚。有人可

  • 问题内容: 假设我有一个普通对象列表,然后可以用来呈现子级列表。那么将对象插入其中的正确方法是什么? 以下是我认为它将起作用的唯一方法,因为您不能像文档中提到的那样直接更改。 这对我来说似乎很丑。有没有更好的办法? 问题答案: 返回一个新数组,所以你可以做 另一个选择是React的不变性助手

  • 我正在处理这个FreeCodeCamp排行榜表,当单击突出显示的表头时,应用程序调用这个url https://fcctop100.herokuapp.com/api/fccusers/top/recent,或者这个https://fcctop100.herokuapp.com/api/fccusers/top/alltime,从而在过去30天或所有时间中得分最高的露营者之间进行排序。 我在这里的