0
StackNavigator를 MobX와 함께 사용하려고합니다. 여기 내가 붙어 있습니다.StackNavigator와 Mobx 소품을 결합하십시오.
index.android.js
import React, {Component} from 'react';
import {AppRegistry} from 'react-native';
import DemoStore from './src/stores/DemoStore';
import { StackNavigator } from 'react-navigation';
import PoolListComponent from "./src/components/PoolListComponent";
import TestComponent from "./src/components/TestComponent";
export default class TestApp extends Component {
render() {
const Navigator = StackNavigator({
Home: {screen: TestComponent},
Pools: {screen: PoolListComponent}
});
return (
<Navigator store={DemoStore} />
)
}
}
AppRegistry.registerComponent('TestApp',() => TestApp);
TestComponent.js
import React, {Component} from 'react';
import {observer} from 'mobx-react';
import {Button, StyleSheet, View} from 'react-native';
@observer
export default class TestComponent extends Component {
static navigationOptions = {
title: 'Home',
};
render() {
const { navigate } = this.props.navigation;
console.log(this.props.store)
return (
<View>
<Button
title="Pool overview "
onPress={() =>
navigate('Pools')
// Poolsconsole.log(this.props.TestApp)
}
/>
</View>
);
}
}
Demostore
import {observable } from 'mobx';
class DemoStore{
@observable name = 'Demo demo';
@observable pools = [];
}
const demoStore = new DemoStore();
export default demoStore;
구간 ove 코드가 작동합니다. 이것으로, 응용 프로그램을로드 할 때 TestComponent가 화면에 나타납니다.
- 어떻게
index.android.js
이는TestComponent
를로드하는 것을 알고 않습니다그러나, 나는 다음과 같은 질문이?
TestComponent's
렌더링 방법에서console.log(this.props.store)
은undefined
을 인쇄합니다. 모든 구성 요소에서 사용할 수 있도록 상점을 올바르게 주입하려면 어떻게합니까? 당신이 내 예제에서 볼 때 그래서TestComponent
및 기록에 대한
PoolListComponent
에 사용할 수 있어야합니다 : 을 나는
"mobx": "^3.3.1",
"mobx-react": "^4.3.3",
"react": "16.0.0-alpha.12",
"react-navigation": "^1.0.0-beta.15"