Показать сообщение отдельно
  #2 (permalink)  
Старый 25.08.2024, 04:17
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,565

Мужик. Это не магия - это обычный javascript. То что ты кладёшь в Provider value - то ты и забираешь в useContext.
Кладёшь массив - забираешь массив, кладёшь объект - забираешь объект. Два раза забрав одно и то же - ты два раза получишь одно и то же.

Если же ты кладёшь вот так - value={(value1,value2,value3,value4)}>, то на выходе у тебя будет value4, потому что у тебя тут не объект и не массив, а использование оператора запятая в скобочках.

Чем тебе не нравится работа с массивом из четырёх значений и почему тебе прям необходимо творить дичь - непонятно.
Возможно таки подойдёт использование объекта?
value={ {value1,value2,value3,value4} }>

const context = useContext(taskListContext);

context.value1 
context.value2
context.value3
context.value4



P.S. Если очень хочется - поведение с отдачей сначала двух первых значений потом двух вторых можно сделать с помощью кастомного хука. Но не нужно.
__________________
29375, 35

Последний раз редактировалось Aetae, 25.08.2024 в 04:22.
Ответить с цитированием