首页 > 解决方案 > TextField 调用 handleChange 两次

问题描述

我的状态从 0 开始,我想在我的表单中使用 TextField。它是类型号和增量或减量。当我单击它时,它会得到 2(状态)。

<TextField
 id="outlined-number"
 label="Quantity"
 value={value}
 onChange={(ev) => handleChange(ev)}
 type="number"
 className={classes.textField}
 InputLabelProps={{
    shrink: true,
 }}
 margin="normal"
 variant="outlined"/>

我在stackoverflow中做了很多搜索,1 2但我的问题没有解决。

我试过1:

onChange={handleChange}

2:

 ev.stopPropagation();

我的处理函数:

    const [value, setValue] = useState(0);

    function handleChange(ev) {
        setValue(ev.target.value);
    } 

它从 0 开始,当我单击 UP 按钮并更改为 2 时。我不明白我在哪里犯了错误。感谢您的回答。

代码:https ://github.com/kvlknctk/cekilis/blob/volkancatak/src/app/main/market/AlertDialog.js

标签: reactjs

解决方案


如果您正在使用,create-react-app那么您的App组件将StrictMode像这样包装:

<React.StrictMode>
  <App />
</React.StrictMode>,

index.js并移除<React.StrictMode></React.StrictMode>

https://github.com/facebook/react/issues/12856#issuecomment-390206425


推荐阅读