【发布时间】:2017-11-07 17:22:28
【问题描述】:
我正在使用 React Native 创建一个应用程序,并且我正在使用 React Navigation。在主页中,我有一系列服务。我希望能够根据服务的索引路由到应用程序中的不同屏幕。这是代码的sn-p。我怎么做?
import React, { Component } from 'react'
import {
StyleSheet,
Text,
TextInput,
View,
TouchableHighlight,
ActivityIndicator,
AppRegistry,
Image
} from 'react-native';
import { StackNavigator } from 'react-navigation';
import { addNavigationHelpers } from 'react-navigation';
import SelectMultiple from './SelectMultiple';
import PackingPage from './PackingPage';
const services =
['Packing Items in Boxes for Shipping and Moving',
'Unpacking Boxes',
'Wrap Furniture for Moving and Shipping',
'Wrap Machinery',
'Loading / Lumper Services',
'Unloading / Lumper Services',
'Custom Crating for Boxes, Furniture and Machinery',
'Palletizing Services for Boxes, Furniture and Machinery',
'Shipping / Moving Service to 2nd location',
'Heat Shrink wrapping',
'Shipping Food in AC trucks',
'Shipping Food in Non AC Truck',
'Shipping Cars']
class PackingApp extends Component{
static navigationOptions = {
title: '',
};
state = { selectedServices: [] }
onSelectionsChange = (selectedServices) => {
this.setState({ selectedServices })
}
到目前为止,我还有一个用于堆栈导航器的 sn-p 代码,它有两个屏幕。我想根据其索引为每个服务添加一个屏幕。我试过用 if/else 来做这件事,但我无法让它工作。
const PackingNav = StackNavigator({
Home: { screen: HomePage },
PackingPage: { screen: PackingPage },
},
{
headerMode: "none"
});
【问题讨论】:
-
您的服务数组只是一个字符串数组。您需要为每个屏幕(或服务)创建一个组件,然后将其添加到 StackNavigator,就像您刚刚为其他两个屏幕所做的那样。
-
是的,每个屏幕都有一个组件。每个服务应该对应一个屏幕。如何使用服务元素的索引来路由到其对应的屏幕?
标签: javascript arrays react-native react-jsx react-navigation