【问题标题】:When managing multiple inputs in React在 React 中管理多个输入时
【发布时间】:2021-01-18 09:10:18
【问题描述】:
    const [state, setState]=useState({
        value:0,
        value2:0
    });

    const onChange1=()=>{
        setState({
            ...state,
            value:5
        });
    };
    const onChange2=()=>{
        setState({
            ...state,
            value2:10
        });
    };

    return (
        <div>
            <div>value:{state.value}</div>
            <div>value2:{state.value2}</div>
            <button onChange={onChange1}>value</button>
            <button onChange={onChange2}>value2</button>
        </div>
        
    );

我想根据按钮以不同方式管理 value1 和 value2。但是,我不习惯管理多个输入。任何帮助将不胜感激。

【问题讨论】:

  • 问题是什么?您当前的代码有问题吗?
  • 是的,即使按下按钮@CertainPerformance,值也不会改变
  • 很好地描述你的问题。在不知道您面临的问题的情况下,我们无法帮助您。描述你的问题。
  • 当我按下第一个按钮时,值将变为5,当我按下第二个按钮时,值2将变为10,但它没有改变。请帮帮我..我不知道我的问题是什么...@MichaleRezene

标签: reactjs input use-state


【解决方案1】:

好吧,您的代码不起作用的原因是您使用了onChange 方法。请改用onClick。你通常在input 中使用onChange

【讨论】:

  • 谢谢。但是为什么 onChange 不起作用而 onClick 起作用呢?
  • 因为它是一个按钮。您无需更改按钮上的字段,您只需单击一个按钮,但是当涉及到输入时,您可以通过编写一些内容来更改输入上的某些内容,这就是我们在输入上使用 onChange 的原因。实际上,对按钮说 onChange 是没有意义的,因为您单击一个按钮并没有更改按钮。希望你能理解...
  • 谢谢。我错过了一些太基本的东西。谢谢你,我学到了很多!
  • 验证你得到的答案是一个好习惯,这样其他人就可以知道哪个是正确的答案。
【解决方案2】:

使用 onClick() 而不是 onChange() 这将按照您的设置方式工作: https://repl.it/repls/LankyBleakConstants#src/App.js

【讨论】:

  • 感谢您的帮助。我不会忘记你的好意!
【解决方案3】:

试试这个方法,

const [state, setState]=useState({
        value:0,
        value2:0
    });

    const onChange1= ()=>{
        setState((prevState)=> ({
            ...prevState,
            value:5
        }));
    };
    const onChange2= ()=>{
        setState((prevState)=> ({
            ...prevState,
            value2:10
        }));
    };

    return (
        <div>
            <div>value:{state.value}</div>
            <div>value2:{state.value2}</div>
            <button onClick={onChange1}>value</button>
            <button onClick={onChange2}>value2</button>
        </div>
        
    );

【讨论】:

  • 谢谢。还有一个问题,我可以指定任何变量而不是 prevState 吗?
猜你喜欢
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多