🚀 Обучение программированию в виде онлайн игры: курс Full-Stack JavaScript 💪

Задача #3801, Этап #22 - Приложение Vocabulary Builder

Функции deleteListResult, deleteWordResult, addListResult, addWordResult должны быть экспортированы из src/external/redux/helpers. deleteListResult должен получать в качестве аргументов состояние и список для удаления. Этот метод должен возвращать обновленное состояние, отфильтровав списки LISTS и WORDS....

August 15, 2020 · 1 мин · Coderslang Master

Задача #3801, Этап #23 - Приложение Vocabulary Builder

Доработаем reducer. По умолчанию он должен возвращать начальное состояние. Случай ADD_LIST должен вызывать метод addListResult, случай ADD_WORD: addWordResult. Случаи DELETE_LIST и DELETE_WORD - методы deleteListResult и deleteWordResult соответственно. При этом всегда нужно возвращать результат вызова метода с соответствующими аргументами....

August 15, 2020 · 1 мин · Coderslang Master

Задача #3801, Этап #24 - Приложение Vocabulary Builder

Нужно создать папки: src/containers/Words/Word, src/containers/Words/Word/Details, src/containers/Words/Word/Option. В каждой из низ нужен index.js файл для создания соответствующих компонентов. Начнем с компонента Option. Он должен возвращать элемент Text. Если свойство detailsKey не равно examples или defs:...

August 15, 2020 · 1 мин · Coderslang Master

Задача #3801, Этап #25 - Приложение Vocabulary Builder

Теперь поработаем над компонентом Details. Он должен возвращать элемент View. У View свойство marginVertical должно равняться 10. Внутри View сначала добавим элемент Text: для значения detailsKey defs - внутренний текст Definition:,...

August 15, 2020 · 1 мин · Coderslang Master

Задача #3801, Этап #26 - Приложение Vocabulary Builder

Теперь время проработать компонент Word. В нем будут разворачиваться и сворачиваться детали. Для этого добавим флаг с использованием хука useState. Начальное значение - false. Компонент Word должен возвращать элемент View, внутри которого будет TouchableOpacity со стилями:...

August 15, 2020 · 2 мин · Coderslang Master

Задача #3801, Этап #27 - Приложение Vocabulary Builder

Для отображения данные надо сначала подготовить. Для этого экспортируй функцию preparedDetails из файла: src/containers/Words/Word/helpers.js. Получать эта функция должна один аргумент meanings. meanings это массив объектов, которые описывают слово. Каждый объект состоит из строк def, example и массива строк synonyms....

August 15, 2020 · 1 мин · Coderslang Master

Задача #3801, Этап #28 - Приложение Vocabulary Builder

Нам надо добавить еще один, на этот раз последний, компонент. Создадим его в папке src/components/AlertModal. Возвращать этот компонент должен элемент Modal. Свойство visible должно быть проброшено в него, а свойство handleClose в его свойство onRequestClose....

August 15, 2020 · 2 мин · Coderslang Master

Задача #3801, Этап #29 - Приложение Vocabulary Builder

Добавим модальное окно в контейнер Words. Сначала добавим логику его включения. Создадим его состояние с помощью useState. Начальное значение это объект с полями: visible со значением false, title - пустая строка, handleDelete - null....

August 15, 2020 · 1 мин · Coderslang Master

Задача #3801, Этап #3 - Приложение Vocabulary Builder

Добавим компонент навигатора в файле src/components/Navigator/index.js. Сразу добавим временные компоненты для наших будущих экраном. Разместим их в папке src/containers: Words/index.js, Lists/index.js, AddingListOrWord/index.js. Все компоненты и контейнеры надо называть точно также, как папки в которых они находятся....

August 15, 2020 · 1 мин · Coderslang Master

Задача #3801, Этап #30 - Приложение Vocabulary Builder

Контейнер Words нужно подключить к хранилищу с помощью метода connect. Будем использовать и mapStateToProps, и mapDispatchToProps. mapStateToProps должен возвращать только одно свойство words, равное WORDS из состояния. mapDispatchToProps должен быть объектом со свойствами: dispatchDeleteList и dispatchDeleteWord....

August 15, 2020 · 1 мин · Coderslang Master