面试题答案
一键面试- 使用
React.createContext
初始化默认值:React.createContext
接受一个默认值作为参数。这个默认值会在组件树中没有匹配的Provider
时使用。- 示例代码如下:
import React from'react'; // 创建上下文并初始化默认值 const MyContext = React.createContext('default value');
- 实现跨组件数据传递示例:
- 父组件
App
:
import React from'react'; import Middle from './Middle'; import { MyContext } from './MyContext'; const App = () => { const valueToPass = 'new context value'; return ( <MyContext.Provider value={valueToPass}> <Middle /> </MyContext.Provider> ); }; export default App;
- 中间组件
Middle
:
import React from'react'; import Child from './Child'; const Middle = () => { return ( <div> <Child /> </div> ); }; export default Middle;
- 子组件
Child
:
import React from'react'; import { MyContext } from './MyContext'; const Child = () => { const contextValue = React.useContext(MyContext); return ( <div> <p>The context value is: {contextValue}</p> </div> ); }; export default Child;
MyContext.js
文件:
import React from'react'; const MyContext = React.createContext('default value'); export { MyContext };
- 父组件
以上代码展示了如何在React中使用React.createContext
初始化默认值,并通过Provider
和useContext
实现跨组件数据传递。App
组件作为父组件,通过Provider
提供上下文值,Child
组件在深层组件树中通过useContext
获取上下文值并显示。Middle
组件在中间起到传递作用,但并不处理上下文相关逻辑。