@Fierfoxik

Как изменить отрисованный элемент?

В приложении есть компонент <inputs /> в котором лежат инпуты и поле для загрузки картинки.
При нажатии кнопку добавить мы берем все данные из полей , генерируем id и передаем через пропсы родителю <Inputs container/>, который подключен к store и передает в него все данные.

Компонент родитель <bookList/> принимает id элемента и передает его компоненту <book/> который уже отрисовывает каждый элемент.

Необходимо каким то образом сделать возможность изменить элемент.
В голову пока пришла только идея взять все данные из блока и передать в<inputs/> через store
Но по поводу реализации возникают сомнения, может кто подсказать как это бы лучше реализовать?

c15b8d9561f4426a95cc0e9298d7d7f6.png
  • Вопрос задан
  • 466 просмотров
Пригласить эксперта
Ответы на вопрос 2
@undefined_title
при нажатии на кнопку добавить, у тебя должен происходить екшин который принесет данные книги к редьюсеру который вернет новый стейт стора, контейнер книг у тебя должен быть подписан на стор, и именно на массив books, при изменении которого будет перерендериваться компонент, и в рендере просто надо мапить this.props.books
Ответ написан
Комментировать
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
У вас есть первый несколько вариантов
Первый это прокинуть функцию через пропсы в а затем в и вызывать функцию this.props.myFunk в компоненте передавая необходимые переменные.
Таких образом можно передать данные родителям. Но это не самый красивый способ
Второй способ это использовать редукс. Положить данные при обработке в и вытащить из store в .
И третий вариант это использовать Contex. Самый редко используемый способ на мой взгляд. https://habrahabr.ru/post/266407/ прекрасная статья которая ответит на все вопросы о контексе реакта.

На мой вгляд если нужно быстрое решение используйте первый способ, но правильнее использовать редукс.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы