MobX,Store 不可用,请确保它是由某些提供商提供的
MobX,Store Is Not Available, Make Sure It Is Provided By Some Provider
注意:即使有一些与我类似的问题,我的情况也没有满意的答案!!!
在我的react-native项目中,我使用mobx作为状态管理。我的 Login.js 文件的某些部分如下所示:
export default class Login extends React.Component {
@observable isLogged = true;
.
.
.
.
render() {
return (
<Provider store = {Login}>
<View style={styles.container}>
<TextInput
style={styles.input}
placeholder='Kullanıcı Adı'
autoCapitalize="none"
placeholderTextColor='white'
onChangeText={val => this.onChangeText('username', val)}
/>
.
.
.
我的 App.js 文件的某些部分如下所示:
.
.
.
@inject('store')
@observer
export default class App extends React.Component{
// @action(self =>({
// changeControl(){console.log("CHANGE CONTROL CALISTI")}
// }))
state = {
control : false
}
render(){
console.log("ISLOGGED DEGERI:" ,Login.isLogged)
if (this.props.store.isLogged)
{
return (
<AppDrawerNavigatorLogged/ >
);
}
else
{
return (
<AppDrawerNavigatorNotLogged/ >
);
}
}
}
.
.
.
看起来,我有一个 isLogged 可观察变量,我在 Login.js 文件中使用了 Provider 和一个存储,我想在我的 [=28= 中使用 isLogged 可观察变量] 文件。然而,即使我在 Login.js 文件中使用 Provider,我也会收到如下错误:
错误:MobX 注入器:商店 'store' 不可用!确保它是由某个提供商提供的。
有没有人遇到过这个问题或者有什么想法?
谢谢...
您似乎遗漏了 mobx
和 mobx-react
的一些核心概念。我建议首先修复一些错误:
<Provider>
组件应该包装你的整个应用程序。在大多数情况下,它围绕 <App>
组件 (<Provider store={loginStore}><App/></Provider>
)
Login
在您的情况下是 React.Component
- 这是不对的。您需要创建一个 Login
class 并将其实例传递给 Provider
示例:
class Login {
@observable isLogged = true;
// some methods for log in
}
const loginStore = new Login();
class App extends React.Component {
...
render(){
return (
<Provider store={loginStore}>
<App />
</Provider>
)
}
}
注意:即使有一些与我类似的问题,我的情况也没有满意的答案!!!
在我的react-native项目中,我使用mobx作为状态管理。我的 Login.js 文件的某些部分如下所示:
export default class Login extends React.Component {
@observable isLogged = true;
.
.
.
.
render() {
return (
<Provider store = {Login}>
<View style={styles.container}>
<TextInput
style={styles.input}
placeholder='Kullanıcı Adı'
autoCapitalize="none"
placeholderTextColor='white'
onChangeText={val => this.onChangeText('username', val)}
/>
.
.
.
我的 App.js 文件的某些部分如下所示:
.
.
.
@inject('store')
@observer
export default class App extends React.Component{
// @action(self =>({
// changeControl(){console.log("CHANGE CONTROL CALISTI")}
// }))
state = {
control : false
}
render(){
console.log("ISLOGGED DEGERI:" ,Login.isLogged)
if (this.props.store.isLogged)
{
return (
<AppDrawerNavigatorLogged/ >
);
}
else
{
return (
<AppDrawerNavigatorNotLogged/ >
);
}
}
}
.
.
.
看起来,我有一个 isLogged 可观察变量,我在 Login.js 文件中使用了 Provider 和一个存储,我想在我的 [=28= 中使用 isLogged 可观察变量] 文件。然而,即使我在 Login.js 文件中使用 Provider,我也会收到如下错误:
错误:MobX 注入器:商店 'store' 不可用!确保它是由某个提供商提供的。
有没有人遇到过这个问题或者有什么想法? 谢谢...
您似乎遗漏了 mobx
和 mobx-react
的一些核心概念。我建议首先修复一些错误:
<Provider>
组件应该包装你的整个应用程序。在大多数情况下,它围绕<App>
组件 (<Provider store={loginStore}><App/></Provider>
)Login
在您的情况下是React.Component
- 这是不对的。您需要创建一个Login
class 并将其实例传递给Provider
示例:
class Login {
@observable isLogged = true;
// some methods for log in
}
const loginStore = new Login();
class App extends React.Component {
...
render(){
return (
<Provider store={loginStore}>
<App />
</Provider>
)
}
}