Я создаю игровое приложение реагирования и хочу передать состояние по нескольким компонентам. Для этого я впервые пытаюсь отреагировать на контекст api. Так что это мой GameContext. js
import React, { useState, createContext } from 'react';
const GameContext = createContext();
const GameProvider = ({ children }) => {
const [name, setName] = useState('');
const [color, setColor] = useState('');
const [startgame, setStartgame] = useState(false);
return (
<GameContext.Provider value={[name, setName]}>
{children}
</GameContext.Provider>
);
};
export { GameContext, GameProvider };
И я могу получить доступ к name
в дочернем компоненте, используя
import { GameContext } from '../../context/GameContext';
const [name, setName] = useContext(GameContext);
console.log(name);
Но теперь я хочу получить другой значения состояний в один и тот же дочерний компонент, например [color, setColor]
и [startgame, setStartgame]
, из GameContext. js.
Как получить эти значения в дочерний компонент?
У меня есть еще один вопрос, почему-то я чувствую, что это действительно глупый вопрос, но почему я не могу сделать что-то подобное в GameContext. js? ...
<GameContext.Provider value={[name, setName,color, setColor, startgame, setStartgame]}>
и получить значения в дочернем компоненте следующим образом ...
const [name, setName,color, setColor, startgame, setStartgame] = useContext(GameContext);
Я пробовал это, но браузер жалуется, что я нарушаю правила ловушек реагирования.