reactjs - 如何防止在reactJs中具有相同名称和相同onchange函数的自动输入值更改?
问题描述
我正在尝试制作一个评分系统,其中有学生列表,我必须为每个学生打分,每个输入字段都将具有相同的 onChange 功能,我在这里添加了一个演示沙箱。我希望每个输入字段都是唯一的,并且当我键入任何等级而不更改所有其余输入字段时,只会更改特定的输入字段。
https://codesandbox.io/s/fervent-browser-jnono?file=/src/App.js
我的代码如下,
import React, { useState } from "react";
export default function App() {
const [grade, setGrade] = useState(null);
let arr = [1, 2, 3, 4, 5, 6];
const handleChange = (e) => {
e.preventDefault();
setGrade(e.target.value);
};
return (
<div className="App">
{arr.map((m) => (
<input
value={grade ? grade : ""}
onChange={handleChange}
placeholder="Enter Grade"
/>
))}
</div>
);
}
在这里,当我在第一个字段上键入时,它将影响所有输入的其余部分。
解决方案
我已经做到了,只是将我的输入分离到一个组件中,如下所示
export default function TestInput({ grade, handleChange }) {
return (
<div className='App'>
<input value={grade} onChange={handleChange} placeholder='Enter Grade' />
</div>
);
}
<TestInput
value={grade}
handleChange={handleChange}
placeholder='Enter Grade'
style={{ marginTop: "0px" }}
/>
推荐阅读
- python - Pytorch:无法在需要 grad 的变量上调用 numpy()。改用 var.detach().numpy()
- css - 空格而不是 Google 自动广告
- python - tensorflow:批量标准化时获取 ValueError("None values not supported.")
- python - 如果它是具有空值的数据框和具有由下划线分隔的数字的列,如何在 Flask 应用程序中的应用程序路由之间传递对象?
- angular - 将文件 common.po 导出到其他应用程序
- swift - Trim array after matching two strings
- tensorflow - Difference btwn high and low level libraries
- java - 为什么静态块被执行两次,而这段代码中只有一个类文件?
- cucumber - 未从功能文件中获取数据
- azure - Azure: I am unable to select VM size through portal (all browsers) - Powershell seems to work OK