Навигация по 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 редуксировать с помощью реакт-редукса. После этого вы можете получить доступ ко всему через реквизит.

Другие вопросы по тегам