【发布时间】:2022-01-10 07:07:00
【问题描述】:
我正在尝试在表格中绘制出许多元素,并且每个元素都有一个特定的值。每当我使用 value={inputArrival} 或 value={inputBurst} 时,特定列的所有值都会更新。我附上截图。如何解决这个问题? Screenshot of what's happening
import React,{useState} from 'react';
import './tableEdit.css';
const EntryTable = (props) => {
const entry=props.numOfEntries;
const[inputArrival,SetinputArrival]=useState('');
const[inputBurst,SetinputBurst]=useState('');
function changeArrival(e)
{
console.log(e.target.value+"A");
/*
if(!Number(e.target.value))
return;
else*/
SetinputArrival(e.target.value);
}
function changeBurst(e)
{
console.log(e.target.value+"B");
SetinputBurst(e.target.value);
}
// console.log(entry);
var ArrayEntry=[];
for(var i=1;i<=entry;i++)
ArrayEntry.push( <tr key={i}>
<td className='row_editContent' >P{i}</td>
<td className='row_editContent'><input className='input_edit' placeholder='0' type='number' value={inputArrival} onChange={(e)=>changeArrival(e)}></input>ms</td>
<td className='row_editContent'><input className='input_edit' placeholder='0' type='number' value={inputBurst} onChange={(e)=>changeBurst(e)}></input>ms</td>
</tr>);
return (
<div>
<table className='MainTableContainer' >
<thead>
<tr >
<th className='row_editHeading'>Process</th>
<th className='row_editHeading'>Arrival Time</th>
<th className='row_editHeading'>Burst Time</th>
</tr>
</thead>
<tbody>
{ArrayEntry}
</tbody>
</table>
</div>
)
}
export default EntryTable
【问题讨论】:
-
inputArrival和inputBurst是什么?据我所知,您将每个数据行的相同值映射到所有数据行。您还为每个使用相同的onChange处理程序。这些是一些本地组件状态变量吗?你能提供一个更完整的代码示例吗? stackoverflow.com/help/minimal-reproducible-example -
我已经提供了代码。谢谢你帮助我。
-
我明白了,所以
entry只是作为道具传入的一个数字,我假设您可能只想编辑/更新特定行的数据? -
对对对
标签: javascript reactjs input lifecycle