How can i update a value for input text in a state array? Here is the code that I am currently using:
This is for initial state react hooks
const [kernelSize, setKernelSize] = useState(3)
const [kernel, setKernel] = useState([])
Input range for size of kernel
<input type="range" step="2" name="range" min="3" max="7" value={kernelSize} className="slider" onChange={(e) => handleKernel(e)} />
This is for handleKernel function
const handleKernel = (e) => {
setKernelSize(e.target.value)
let kernel = []
for (let i = 0; i < e.target.value; i++) {
kernel.push([])
for (let j = 0; j < e.target.value; j++) {
kernel[i].push(1)
}
}
setKernel(kernel)
}
This is for looping input text based size/length from input range
{
kernel.map((value, index) => {
return (
<div className="row mt-3" key={`${index}_${value}`}>
{
value.map((value_2, index_2) => {
return (
<div className="input-wrap" key={`${index_2}_${value_2}`}>
<input type="text" id="" className="form-control" value={value_2} onChange={(e) => updateKernel(e, index, index_2)} />
</div>
)
})
}
</div>
)
})}
This is for updateKernel function
const updateKernel = (e, index, index_2) => () => {
let kernelCopy = [...kernel];
kernelCopy[index][index_2] = e.target.value;
setKernel(kernelCopy);
}