假设我有一些包含某些项目的FlatList,我按下其中一个,然后打开另一个屏幕,其中包含该项目的详细信息。好吧,所以我需要的是,在按下名为"得到它的按钮之后!"并进入后面的屏幕(FlatList屏幕),如何在所选行中将背景颜色设置为绿色?
注意:class Details和ProfileActivity作为孩子在App.js中。
class ProfileActivity extends Component
{
GetFlatListItem (Description, Tutorial, Imagen, Title) {
Alert.alert(Description);
this.props.navigation.navigate('Fourth', {Tutorial, Imagen, Title});
}
return(
<View style = { styles.MainContainer }>
<Button title="Logout" onPress={ () => goBack(null) } />
<Text style = {styles.TextComponentStyle}> { this.props.navigation.state.params.Email } </Text>
<FlatList
data={ this.state.dataSource }
ItemSeparatorComponent = {this.FlatListItemSeparator}
renderItem={({item}) => <View style={{flex: 1, flexDirection: 'row'}}> <Text style={styles.points}>+ {item.points}</Text>
<Text style={styles.flatview} onPress={this.GetFlatListItem.bind
(this, item.description, item.tutorial, item.image, item.title)} >{item.title}</Text></View>}
keyExtractor={(item, index) => index.toString()}
/>
</View>
);
class Details extends Component{
onPress = () => {
this.setState({
const {goBack} =this.props.navigation;
})
}
return(
<View style = { styles.MainContainer }>
<TouchableHighlight
style={styles.buttonStyle}
onPress={this.onPress}
>
<Text> Got it! </Text>
</TouchableHighlight>
<Text style = {styles.TextComponentStyle}> { this.props.navigation.state.params.Title } </Text>
<Image
style={{width: 66, height: 58}}
source={{uri: this.props.navigation.state.params.Imagen}}
/>
<Text style = {styles.TextComponentStyle}> { this.props.navigation.state.params.Tutorial } </Text>
</View>
);
}
export default MainProject = createStackNavigator(
{
First: { screen: App },
Second: { screen: ProfileActivity },
Fourth: { screen: Details }
});
我认为将一些值传递给Details类中的onPress()方法,但我不知道究竟是哪一个以及如何。有人可以帮帮我吗?
答案 0 :(得分:0)
您必须创建this.state.someArrayName并从this.props.navigation.state.params
复制并将backgroundColor
键添加到每个对象并添加颜色。将该颜色应用于您的商品&#39;查看背景颜色。 * {{backgroundColor:item.backgroundColor}}
创建一个功能changeColor
来更改backgroundColor
的颜色
在GetFlatListItem
函数中,将该函数传递给详细视图
在详细信息视图中,调用changeColor
函数。点击this.props. changeColor()
按钮时Got it
。