首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Navigator响应本机+ Redux

使用Navigator响应本机+ Redux
EN

Stack Overflow用户
提问于 2016-05-06 16:56:15
回答 1查看 173关注 0票数 0

我是新来的本地人。我有一个使用Redux框架的。我使用Navigator组件来处理导航,但是在组件中没有定义this.props.navigator。如何将"this.props.navigator“传递给组件?我无法找到任何好的例子,如何正确地做它,所以我寻求一些帮助和澄清。

index.anroid.js

代码语言:javascript
运行
复制
...
import App from './app/app';

AppRegistry.registerComponent('RnDemo', () => App);

app.js

代码语言:javascript
运行
复制
...    
import App from './containers/app';

const logger = createLogger();
const createStoreWithMiddleware = applyMiddleware(thunk, logger)(createStore);
const store = createStoreWithMiddleware(rootReducer);

const rootApp = () => {
  return (
    <Provider store={store}>
      <App />
    </Provider>
  )
}

export default rootApp;

containers/app.js

代码语言:javascript
运行
复制
...
class App extends Component {

  renderScene(route, navigator) {
    let Component = route.component
    return (
      <Component navigator={navigator} route={route} />
    )
  }

  configureScene(route) {
    if (route.name && route.name === 'Home') {
      return Navigator.SceneConfigs.FadeAndroid
    } else {
      return Navigator.SceneConfigs.FloatFromBottomAndroid
    }
  }

  _selectPage(page) {
    if(page === 'detail') {
      this.props.navigator.push({
        component: Detail,
        name: 'Detail'
      }) // **this.props.navigator.push is not a function**
    }
  }
  render() {
    const { navigator } = this.props;
    console.log(navigator);  // **>>>>>> Undefined**
    return (
      <View style={styles.container}>
        <View style={styles.menu}>
          <TouchableOpacity onPress={() => this._selectPage('detail')}><View style={styles.menuItem}><Text>Detail</Text></View></TouchableOpacity>
        </View>
        <View style={styles.content}>
          <Navigator
            ref='navigator'
            style={styles.navigator}
            configureScene={this.configureScene}
            renderScene={this.renderScene}
            initialRoute={{
              component: Home,
              name: 'Main'
            }}
          />
        </View>
      </View>
    )
  }
}
EN

回答 1

Stack Overflow用户

发布于 2016-06-06 05:13:11

代码语言:javascript
运行
复制
renderScene(route, navigator) {
    let Component = route.component
    return (
        // <Component navigator={navigator} route={route} />
        <Component {...this.props} navigator={navigator} route={route} />
    )
}

试试看

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37077714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档