У меня есть следующий фиктивный пример:
function App({size}) {
const [values, setValues] = React.useState(Array(size).fill(''));
function onChange(index, event) {
console.log('setting index: ', index)
console.log('to value: ', event.target.value);
values[index] = event.target.value;
setValues(values);
}
console.log('values are');
console.log(values);
const inputs = Array(size).fill().map((_, index) => (
<input
key={`input-${index}`}
value={values[index]}
onChange={e => onChange(index, e)}
/>
));
return (
<React.Fragment>
{inputs}
</React.Fragment>
)
}
ReactDOM.render(
<App size={3} />,
document.getElementById('container')
);
Я ожидаю, что смогу передать size
в App
и динамически получить столько входных данных.
Когда я запускаю этои введите входные данные, я вижу
values are
["", "", "", ""]
setting index: 3
to value: s
setting index: 1
to value: e
setting index: 0
to value: f
Похоже, мой компонент не перерисован. Почему это?