Навигация по WiX Доступ к хранилищу избыточных файлов из зарегистрированного компонента
Я пользуюсь WiX навигацией с приставкой. https://wix.github.io/react-native-navigation/
В файле app.jsx я регистрирую все свои экраны в магазине redux:
const createStoreWithMiddleware = applyMiddleware(thunk)(createStore);
const reducer = combineReducers(reducers);
const store = createStoreWithMiddleware(reducer);
registerScreens(store, Provider);
В registerSceens.js я связываю хранилище приставок:
export default (store, Provider) => {
Navigation.registerComponent('aApp.FooComponent', () => FooComponent, store,
Provider);
}
Так в FooComponent, как я могу легко получить доступ к магазину редуксов?
export default class FooComponent extends Component {
constructor(props) {
super(props);
console.log(store); //i need REDUX store
}
2 ответа
Вам нужно подключить ваш компонент, тогда вы можете получить хранилище из контекста, что-то вроде этого:
class FooComponent extends Component {
static contextTypes = {
store: object, // <--- allow this component to access the store
};
componentWillMount(props) {
const { store } = this.context; // <-- Get it!!
console.log(store); //i need REDUX store
}
}
export default connect()(FooComponent);
После того как вы определили contextTypes
, вы можете получить доступ к магазину из this.context
,
Хотя вы можете сделать это... вопрос в том... почему вы делаете что-то подобное? connect
уже позволяет вам получить доступ к состоянию и связать действия, это, как правило, все, что вам нужно. Как правило, всегда полезно держать наши компоненты настолько тупыми, насколько это возможно.
Вам нужно подключить свой FooComponent
редуксировать с помощью реакт-редукса. После этого вы можете получить доступ ко всему через реквизит.