gpt4 book ai didi

javascript - 如何将对 Navigator 的引用传递给 renderScene?

转载 作者:数据小太阳 更新时间:2023-10-29 05:45:18 25 4
gpt4 key购买 nike

我一直在试验 React Native,但我无法将对导航器的引用传递到我正在渲染的场景中。没有导航器,NewsList 项无法触发场景更改。

render: function() {
return (
<Navigator
initialRoute={ { name: 'NewsList', index: 0 } }
renderScene={ ( route, navigator ) => NewsList }
/>
);
},

同样,在渲染场景函数中,我需要将导航器传递给行渲染函数。

<UIExplorerPage noSpacer={true} noScroll={true}>
<ListView
dataSource={this.state.dataSource}
renderRow={this._renderRow}
onEndReached={this.onEndReached}
/>
</UIExplorerPage>

像这样传递引用的惯用方法是什么?

最佳答案

就像 Colin 提到的,您需要将回调传递给您的列表项。下面给出的是来自 React Native 本身的示例项目 (UIExplorer) 的代码。

在这里,我们将 navigator 对象传递给作为列表组件的 NavMenu。

var TabBarExample = React.createClass({
// Other methods... blah blah
renderScene: function(route, nav) {
switch (route.id) {
case 'navbar':
return <NavigationBarSample navigator={nav} />;
case 'breadcrumbs':
return <BreadcrumbNavSample navigator={nav} />;
case 'jumping':
return <JumpingNavSample navigator={nav} />;
default:
return (
<NavMenu
message={route.message}
navigator={nav}
onExampleExit={this.props.onExampleExit}
/>
);
}
},

render: function() {
return (
<Navigator
style={styles.container}
initialRoute={{ message: "First Scene", }}
renderScene={this.renderScene}
configureScene={(route) => {
if (route.sceneConfig) {
return route.sceneConfig;
}
return Navigator.SceneConfigs.FloatFromBottom;
}}
/>
);
}
});

在 NavMenu 组件中,我们在每个 NavButton 的 onPress 上传递回调。

class NavMenu extends React.Component {
render() {
return (
<ScrollView style={styles.scene}>
<Text style={styles.messageText}>{this.props.message}</Text>
<NavButton
onPress={() => {
this.props.navigator.push({
message: 'Swipe right to dismiss',
sceneConfig: Navigator.SceneConfigs.FloatFromRight,
});
}}
text="Float in from right"
/>
<NavButton
onPress={() => {
this.props.navigator.push({
message: 'Swipe down to dismiss',
sceneConfig: Navigator.SceneConfigs.FloatFromBottom,
});
}}
text="Float in from bottom"
/>
// Omitted rest of the NavButtons.
</ScrollView>
);
}

这是一个 link示例。

关于javascript - 如何将对 Navigator 的引用传递给 renderScene?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29571085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com