मेरे प्रतिक्रिया मूल निवासी कोड:स्टैकनेविगेटर में स्क्रीन पर पैरामीटर कैसे पास करें?
import React, { Component } from 'react';
import { AppRegistry, ActivityIndicator, StyleSheet, ListView,
Text, Button, TouchableHighlight, View } from 'react-native';
import { StackNavigator } from 'react-navigation';
import DetailsPage from './src/screens/DetailsPage';
class HomeScreen extends React.Component {
constructor() {
super();
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.state = {
userDataSource: ds,
};
}
componentDidMount(){
this.fetchUsers();
}
fetchUsers(){
fetch('https://jsonplaceholder.typicode.com/users')
.then((response) => response.json())
.then((response) => {
this.setState({
userDataSource: this.state.userDataSource.cloneWithRows(response)
});
});
}
onPress(user){
this.props.navigator.push({
id: 'DetailPage'
});
}
renderRow(user, sectionID, rowID, highlightRow){
return(
<TouchableHighlight onPress={()=>{this.onPress(user)} } >
<View style={styles.row}>
<Text style={styles.rowText}> {user.name} </Text>
</View>
</TouchableHighlight>
)
}
render(){
return(
<ListView
dataSource = {this.state.userDataSource}
renderRow = {this.renderRow.bind(this)}
/>
)
}
}
नेविगेशन config:
const NavigationTest = StackNavigator({
Home: { screen: HomeScreen },
DetailsPage: { screen: DetailsPage },
});
विवरण स्क्रीन है:
import React, { Component } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import styles from '../styles';
export default class DetailsPage extends React.Component {
static navigationOptions = ({ navigation }) => ({
title: `User: ${navigation.state.params.user.name}`,
});
render() {
const { params } = this.props.navigation.state;
return (
<View>
<Text style={styles.myStyle}>Name: {params.name}</Text>
<Text style={styles.myStyle}>Email: {params.email}</Text>
</View>
);
}
}
मैं कोड के साथ DetailsPage
को user
पारित करने में सक्षम नहीं कर रहा हूँ :
onPress(user){
this.props.navigator.push({
id: 'DetailPage'
});
}
मैं onPress
फ़ंक्शन के साथ DetailPage
पर नेविगेट करना चाहता हूं। अगर मैं इसे चेतावनी देता हूं:
onPress(user){ Alert.alert(user.name)}
मुझे मूल्य मिलता है, लेकिन मैं इसे दूसरे पृष्ठ पर कैसे पास करूं?
बहुत धन्यवाद!
धन्यवाद। मुझे एक त्रुटि मिल रही थी, मैंने 'विस्तार पृष्ठ', {उपयोगकर्ता: उपयोगकर्ता}) की कोशिश की; और यह काम किया। यदि आप कृपया मदद कर सकते हैं तो मेरे पास एक और सवाल है। मैं उपयोगकर्ता एरे से पैरामीटर का उपयोग करने की कोशिश कर रहा हूं, 'आईडी' को किसी अन्य एपीआई से डेटा लाने के लिए, मैं इसका उपयोग कैसे कर सकता हूं? 'Var theId =' $ {navigation.state.params.users.id} 'घोषित करके इसे' fetch' से बाहर करने का प्रयास करें, लेकिन यह काम नहीं कर रहा है। क्या आप मुझे उचित दिशा में इंगित कर सकते हैं? बहुत धन्यवाद। – Somename
एक टाइपो की तरह दिखता है, '$ {navigation.state.params.user.id}' '' '' '' '' उपयोगकर्ता 'के बजाय' उपयोगकर्ता ') –
नहीं, मैंने इसे' उपयोगकर्ता ',' DetailPage ', { उपयोगकर्ता: उपयोगकर्ता}); '। सुनिश्चित नहीं है कि मैं 'fetch' में कहां और कैसे कहूं, कृपया मदद करें। – Somename