I am building a simple application for Calculation of Matrix, since matrix requires 9 values hence I need 9 states for storing values and calculation purpose
Use of 9 states is very lengthy, how do I use one state and create array inside it and store value like that of 9 states
use of 9 states enables ,use of 9 handlers for onchange function
Since value cannot be null, we cant create a blank array like
const [values,setValues] = useState([])
In short how do I shorten this code, how do I use loops to minimize code ,since every input is important for us???????
import React, { useState } from 'react'
function Add() {
const [value1, setValue1] = useState(0)
const [value2, setValue2] = useState(0)
const [value3, setValue3] = useState(0)
const [value4, setValue4] = useState(0)
const [value5, setValue5] = useState(0)
const [value6, setValue6] = useState(0)
const [value7, setValue7] = useState(0)
const [value8, setValue8] = useState(0)
const [value9, setValue9] = useState(0)
const [solution, setSolution] = useState(null)
const changeHandler1 = (e) => {
setValue1(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const changeHandler2 = (e) => {
setValue2(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const changeHandler3 = (e) => {
setValue3(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const changeHandler4 = (e) => {
setValue4(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const changeHandler5 = (e) => {
setValue5(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const changeHandler6 = (e) => {
setValue6(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const changeHandler7 = (e) => {
setValue7(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const changeHandler8 = (e) => {
setValue8(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const changeHandler9 = (e) => {
setValue9(e.target.value)
console.log("handler", value1, value2, value3, value4, value5, value6, value7, value8, value9)
}
const solveHandler = () => {
let sub1 = value5 * value9 - value8 * value6
let sub2 = value4 * value9 - value7 * value6
let sub3 = value4 * value8 - value5 * value7
let answer = (value1 * sub1) - (value2 * sub2) + (value3 * sub3)
setSolution(answer)
}
return (
<div>{console.log("return", value1, value2, value3, value4, value5, value6, value7, value8, value9)}
< input type="text" onChange={changeHandler1} value={value1} />
< input type="text" onChange={changeHandler2} value={value2} />
< input type="text" onChange={changeHandler3} value={value3} />
<br />
< input type="text" onChange={changeHandler4} value={value4} />
< input type="text" onChange={changeHandler5} value={value5} />
< input type="text" onChange={changeHandler6} value={value6} />
<br />
< input type="text" onChange={changeHandler7} value={value7} />
< input type="text" onChange={changeHandler8} value={value8} />
< input type="text" onChange={changeHandler9} value={value9} />
<br />
<br />
<button onClick={solveHandler} >solve</button>
<p>Answer : {solution}</p>
</div>
)
}
export default Add
modifications to the question are welcome!