【发布时间】:2020-04-18 00:34:29
【问题描述】:
我在 react native 中使用了 React Context API 钩子。我创建了Consumer 和Provider 来将道具和状态从父母传递给孩子。代码运行良好,我收到了父母给孩子的道具。
我在控制台上收到以下警告:-
警告:不支持调用 useContext(Context.Consumer),可能 导致错误,并将在未来的主要版本中删除。你是否 意思是改为调用useContext(Context)?
请检查下面添加的代码:-
我已经创建了通用上下文文件CommonContext.js。
import React, {createContext} from 'react';
const MyContext = createContext();
export const LoginProvider = MyContext.Provider;
export const LoginConsumer = MyContext.Consumer;
这是我的提供者代码
import React, {PureComponent} from 'react';
import {View, Text} from 'react-native';
import {LoginProvider} from './CommonContext';
export default class Login extends PureComponent {
constructor(props) {
super(props);
}
render() {
return (
<View style={Styles.mainContainer}>
<LoginProvider value={this.props}>
<LoginScreenView />
</LoginProvider>
</View>
);
}
}
通过这种方式,我可以将父组件数据访问到子挂钩中
import {LoginConsumer} from './CommonContext';
export default function LoginScreenView(props) {
let loginConsumer = useContext(LoginConsumer);
return (
<View style={Styles.mainContainer}>
<Text>{loginConsumer}</Text>
</View>
);
}
【问题讨论】:
标签: reactjs react-native react-hooks react-context