私はチームメンバーのリストを持っており、反応ナビ/ StackNavigatorを使って次の画面に移動します。どのチームメンバーがクリックされたかに応じて、次の画面には関連するチームメンバー情報が動的にロードされます。React Native + Redux - onPressはアクションと別の機能をディスパッチします
Reduxを使用して、選択した人の状態を変更することで、これを達成できました。しかし、現時点では、アクションをディスパッチして次の画面に移動するための機能をトリガーする方法を理解することができません。
以下は、アクションとナビゲーション機能をディスパッチするイベントを保持するコンポーネントです。最初のチームメンバー 'Tim'にナビゲーション機能があることがわかります。他のすべてのチームメンバーは、それぞれのアクションタイプをディスパッチします。
私はかなりReduxを使い慣れています。誰かが一緒に追加する方法の正しい方向を教えていただければ幸いです。
リポジトリはここで見つけることができます - Github
import React, {Component} from 'react';
import {StyleSheet, View, Text, TouchableOpacity} from 'react-native';
const styles = StyleSheet.create({
pane: {
width: 300,
height: 50,
padding: 10,
backgroundColor: 'lightgray',
alignItems: 'center',
justifyContent: 'center',
margin: 3
}
});
function navTO(passBack, location) {
const { navigate } = passBack.props.navigation;
navigate(location)
}
export default class TeamList extends Component {
constructor(props) {
super(props);
}
render() {
const { passBack, location, whoSelected, Tim, Kate, Ian, Smita, Lee, Ben } = this.props;
return (
<View style={{flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>{whoSelected}</Text>
<TouchableOpacity onPress={() => navTO(passBack, location)} style={styles.pane}>
<Text>Tim</Text>
</TouchableOpacity>
<TouchableOpacity onPress={Kate} style={styles.pane}>
<Text>Kate</Text>
</TouchableOpacity>
<TouchableOpacity onPress={Ian} style={styles.pane}>
<Text>Ian</Text>
</TouchableOpacity>
<TouchableOpacity onPress={Smita} style={styles.pane}>
<Text>Smita</Text>
</TouchableOpacity>
<TouchableOpacity onPress={Lee} style={styles.pane}>
<Text>Lee</Text>
</TouchableOpacity>
<TouchableOpacity onPress={Ben} style={styles.pane}>
<Text>Ben</Text>
</TouchableOpacity>
</View>
);
}
}
基本的には、アクションをディスパッチするコードをナビゲーションコードとともに 'onPress'の中に追加することができます。あなたはそれを知っていると思いますが、私はあなたの質問をしませんでした。その場合、あなたができないことの最終行を簡素化しようとしてください。 –