FreeCode.Academy

Стратегии обучения

Уроки

Технологии

Участники

Проекты

Топики

Блоги

Офис

О проекте

Поправить галочку Нужна помощь на странице редактирования задачи

Завершена

Проект: freecode.academy

Планируемый запуск: Дата начала: Планируемое завершение: Дата завершения:

Описание задачи

Если зайти в любую задачу с пометкой Нужна помощь и нажать Редактировать, в форме редактора у чекбокса Нужна помощь галочка не стоит, то есть не понимает, что должно быть checked.
Чекбокс в коде: https://github.com/freecode-academy/freecode.academy/blob/7612cc81775951e4bc8f38c9971ead588374e052/src/pages/Tasks/Task/View/form/TaskForm/index.tsx#L310-L314

  1. Технология
    Требуемый уровень
  2. React
    3
ПроектЗадачаСтатусДата постановкиНачалоКонецКто создал
freecode.academyПоправить галочку Нужна помощь на странице редактирования задачиЗавершена25.01.2021 14:07:2431.01.2021 19:10:3631.01.2021 19:10:37
Олег
Олег
freecode.academyПоправить галочку Нужна помощь на странице редактирования задачиЗавершена25.01.2021 14:07:2428.01.2021 18:19:0628.01.2021 18:19:11
Олег
Олег
freecode.academyПоправить галочку Нужна помощь на странице редактирования задачиЗавершена25.01.2021 14:07:2428.01.2021 17:58:4028.01.2021 18:18:42
Олег
Олег
Олег
Олег
28 янв. 2021 г., 17:55
Добавил в boolean значение по умолчанию True. Вот только не знаю насколько такой вариант правильный, в коде он конечно не срабатывает, но других вариантов, если честно не вижу.
const onChangeNeedHelp = useCallback( (_event, checked: boolean) => { setValue('needHelp', checked == true) }, [setValue] ) const needHelp = useMemo(() => { return ( <> <CheckBox label="Нужна помощь" checked={!!data.needHelp} onChange={onChangeNeedHelp} /> </> ) }, [data.needHelp, onChangeNeedHelp])

Николай Ланец
Николай Ланец
28 янв. 2021 г., 18:00
Нее, значение по умолчанию true - это вообще не вариант :)
Значение должно именно передаваться из состояния таски.
Николай Ланец
Николай Ланец
28 янв. 2021 г., 18:28
Все, поправил https://github.com/freecode-academy/freecode.academy/commit/bb361cebd16ca487792b5743399cb023a30d3564

Проблема была в том, что данные для чекбокса брались из объекта data, а это не текущие данные задачи, а только измененные, то есть те, которые возникают при редактировании. Но там нет данных, которые есть уже в текущем объекте задачи.


В даннос случае достаточно было использовать метод getValue().

Олег
Олег
28 янв. 2021 г., 18:45
Начну с того, что мне не совсем понятна эта конструкция checked={!!data.needHelp} что значит !! перед data?

const [data, setData] = useState(variablesProp.data) объект data это этот объект?

И как я должен был понять, что это не текущие данные задачи?
Николай Ланец
Николай Ланец
28 янв. 2021 г., 18:51
<< Начну с того, что мне не совсем понятна эта конструкция checked={!!data.needHelp} что значит !! перед data?
Учи булевые. Чем будет равно !!"" (!!пустая строка)?
Николай Ланец
Николай Ланец
28 янв. 2021 г., 18:52
<< const [data, setData] = useState(variablesProp.data) объект data это этот объект?
Да.

<< И как я должен был понять, что это не текущие данные задачи?
Читать код. Больше никак. Смотреть выше кто вызывает этот компонент и что передает. (В текущем случае смотри с самого начала страницу задачи, то есть src/pages/Tasks/Task)

Добавить комментарий