【发布时间】:2021-10-02 19:59:59
【问题描述】:
我正在尝试使用useContext 传递和更新状态;
App.js
import Home from './components/Home'
const UserContext = createContext();
function App() {
const [name, setName] = useState('Name');
return (
<UserContext.Provider value={{name, setName}}>
<Home/>
</UserContext.Provider>
);
}
export default App;
Home.js
import UserContext from '../../App'
function Home() {
const user = useContext(UserContext);
return (
<>
<label>Your name:</label>
<input type='text' onChange={e => user.setName(e.target.value)} />
<p>{user.name}</p>
</>
)
}
export default Home;
我收到这个错误
TypeError: Cannot read properties of undefined (reading 'name');
如何使用useContext在组件之间传递状态的正确方法是什么?
【问题讨论】:
-
您发布的代码与您收到的错误不符。首先,它不会编译,因为您不导出
UserContext。这意味着您不能将其导入到您的Home组件中。一旦你这样做了,你的应用程序就可以工作了。我已将您的代码复制粘贴到 Create-react-app 中,它可以工作。 -
如何导出上下文?
标签: javascript reactjs use-context