archi_kud
@archi_kud
Frontend Developer

Как хранить состояние для переиспользуемых компонентов?

Здравствуйте, у меня появилась проблема с хранение состояния компонента Input. Текущее состояние выглядит примерно так:

inputs: [
    { id: 0, name: 'name', value: '', valid: true, placeholder: 'Прозведение, автор, название, ISBN', size: '_lg', btn-text: 'Найти'},
    { id: 1, name: 'publication-year', value: '', valid: true, placeholder: 'Год издания' },
    { id: 2, name: 'publisher', value: '', valid: true, placeholder: 'Издательство' },
    { id: 3, name: 'category', value: '', valid: true, placeholder: 'Категория' },
    { id: 4, name: 'language', value: '', valid: true, placeholder: 'Язык' }  
]


В моем случае поля value, items и valid будут меняться по со временем. Я думаю, что хранить в состоянии статические поля не совсем правильно, т.к в состоянии надо хранить данные которые будут изменяться. Я не знаю как лучше связать компонент с его состоянием. Например:

<InputContainer size  = 'lg'>
    <Input placeholder = 'Название' name = 'name' />
    <Button>Найти</Button>
</InputContainer>


Я вынес все статические поля из состояние в сам компонент, но изменяемые поля все еще остались в состоянии. Мне придется каждому Input вручную прописывать id и искать его в состоянии или можно сделать это лучше? В этом плане у меня мало опыта, поэтому я не знаю как правильно сделать это.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
state = {
  name: '',
  publicationYear: '',
  publisher: '',
  category: '',
  language: '',
  errors: {},
};

Ошибки валидации складывать по ключу в errors.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы