Я использую библиотеку Material UI с React и хочу отобразить TextField.
const Input = memo(
({ type, name, required, placeholder }) => {
console.log(type)
if (type === 'number') {
// Init input value
if (typeof values[name] !== 'undefined') {
setValues({ ...values, [name]: 0 })
}
let handleNumber = e => {
console.log(e.target.value)
setValues({ ...values, [name]: e.target.value })
}
return (
<TextField
required={required}
type="number"
id={name}
label="Numéro du collier"
name={name}
margin="normal"
variant="outlined"
className="addAnimal-input"
value={values[name]}
// onFocus={setIsSidebarOpen(true)}
onChange={handleNumber}
// onBlur={validate(name)}
// error={errors[name]}
placeholder={placeholder}
/>
)
}
}
Пока я хочу, чтобы метод onChange работал, но он вызывал бесконечное l oop, и я не не знаю, как это исправить. Я пытался вызвать метод так:
e => handleNumber(e)
, который не помог. Другие вещи, которые я пробовал, я не смог бы передать событие или параметры. Проблема здесь в том, что после того, как я вызову setValues()
, он повторно отображает родительский компонент бесконечно, но я не понимаю почему: /