두 개의 입력 필드와 제출 버튼이 있습니다. 값이 입력에 기록되고 제출 될 때마다 입력 값 중 하나만 무작위로 표시됩니다.
예:
모든 값을 출력하는 대신 무작위로 하나만 인쇄해야하며 제출을 클릭 할 때마다 입력에서 다른 임의 값이 나타납니다. 이를 위해 어떻게 든 값을 저장해야한다고 생각하므로 제출할 때마다 양식이 비어 있지 않습니다.
이것이 내가 지금 처리하는 방법입니다.
const [values, setValues] = useState([]);
const addValue = (input1, input2, input3, input4) => {
setValues([...values, {input1, input2, input3, input4 }])
}
const [input1, setInput1] = useState('');
const [input2, setInput2] = useState('');
const [input3, setInput3] = useState('');
const [input4, setInput4] = useState('');
const handleSubmit = (e) => {
e.predeventDefault()
addValue(input1);
setInput1('');
addValue(input2);
setInput2('');
addValue(input3);
setInput3('');
addValue(input4);
setInput4('');
}
그리고 내 견해 :
{values.map(value => {
return( <li key={value.input1}></li>)
})}
<form onSubmit={handleSubmit}>
<input type="text" value={input1} onChange={(e) => setInput1(e.target.value )}/>
// the same repeated with input2, input3,....
내 질문은 내 솔루션을 어떻게 처리 할 수 있습니까? 나는 반응이 처음이고 그것을 처리하는 최선의 방법을 알지 못합니다.
코드를 기반으로 한 가장 간단한 솔루션은 다음과 같습니다.
const addValue = (input1, input2, input3, input4) => {
// You don't have to make an object
setValues([input1, input2, input3, input4]);
};
const handleSubmit = e => {
e.preventDefault();
addValue(input1, input2, input3, input4);
};
// a function to generate random numbers between 0 and 3
const generateRandomNumber = () => {
return parseInt(Math.random() * 4, 10);
};
그런 다음 values
매번 임의의 자식으로 배열을 반환하십시오 . 이렇게 :
{values[generateRandomNumber()]}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다