TouchableHighlight 与滚动视图中的路由不起作用
TouchableHighlight with route in ScrollView not working
export default class Main extends Component {
constructor(props) {
super(props);
}
go_to_details(){
this.props.navigator.push({
title:'Wine Details',
component : winedetails
})
}
render() {
var tmp_array = [
{
"product_name": "RED WINE",
"Price": 26,
"img": "./img/red-wine.jpg",
"bis": "Hanau Hbf",
"Wochentag": "Fr",
"Zeitraum": ""
},
{
"product_name": "GOLD WINE",
"Price": 27,
"img": "./img/red-wine.jpg",
"bis": "Regensburg Hbf",
"Wochentag": "So",
"Zeitraum": ""
},
{
"product_name": "ICE WINE",
"Price": 28,
"img": "./img/red-wine.jpg",
"bis": "Würzburg Hbf",
"Wochentag": "Fr",
"Zeitraum": ""
},
{
"product_name": "ICE SCOT WINE",
"Price": 35,
"img": "./img/red-wine.jpg",
"bis": "Puttgarden",
"Wochentag": "tgl.",
"Zeitraum": "25.06. - 04.09."
},
{
"product_name": "ITALIC WIN",
"Price": 36,
"img": "./img/red-wine.jpg",
"bis": "Hamburg Hbf",
"Wochentag": "tgl.",
"Zeitraum": "25.06. - 04.09."
}
];
var list = tmp_array.map(function(news, i){
return(
<View key={i}>
<Text>{news.product_name}</Text>
<View>
<Text>{news.Price}</Text>
</View>
<TouchableHighlight style={globle.buy_it}
onPress={() => this.go_to_details.bind(this) }>
<Text style={globle.buy_it_text}>BUY THIS</Text>
</TouchableHighlight>
</View>
);
});
return (
<View>
<ScrollView>
{list}
</ScrollView>
</View>
);
}
}
这是错误
试试下面的代码
getRow(news, i) {
return (
<View key={i}>
<Text>{news.product_name}</Text>
<View>
<Text>{news.Price}</Text>
</View>
<TouchableHighlight
style={globle.buy_it}
onPress={this.go_to_details.bind(this)}>
<Text style={globle.buy_it_text}>BUY THIS</Text>
</TouchableHighlight>
</View>
);
}
render() {
//var tmp_array =.... //intialise array
var list = tmp_array.map(this.getRow.bind(this));
return (
<View>
<ScrollView>
{list}
</ScrollView>
</View>
);
}
我所做的更改是
- 添加绑定到地图函数调用
- 修改TouchableHighlight中的onPress绑定语句
export default class Main extends Component {
constructor(props) {
super(props);
}
go_to_details(){
this.props.navigator.push({
title:'Wine Details',
component : winedetails
})
}
render() {
var tmp_array = [
{
"product_name": "RED WINE",
"Price": 26,
"img": "./img/red-wine.jpg",
"bis": "Hanau Hbf",
"Wochentag": "Fr",
"Zeitraum": ""
},
{
"product_name": "GOLD WINE",
"Price": 27,
"img": "./img/red-wine.jpg",
"bis": "Regensburg Hbf",
"Wochentag": "So",
"Zeitraum": ""
},
{
"product_name": "ICE WINE",
"Price": 28,
"img": "./img/red-wine.jpg",
"bis": "Würzburg Hbf",
"Wochentag": "Fr",
"Zeitraum": ""
},
{
"product_name": "ICE SCOT WINE",
"Price": 35,
"img": "./img/red-wine.jpg",
"bis": "Puttgarden",
"Wochentag": "tgl.",
"Zeitraum": "25.06. - 04.09."
},
{
"product_name": "ITALIC WIN",
"Price": 36,
"img": "./img/red-wine.jpg",
"bis": "Hamburg Hbf",
"Wochentag": "tgl.",
"Zeitraum": "25.06. - 04.09."
}
];
var list = tmp_array.map(function(news, i){
return(
<View key={i}>
<Text>{news.product_name}</Text>
<View>
<Text>{news.Price}</Text>
</View>
<TouchableHighlight style={globle.buy_it}
onPress={() => this.go_to_details.bind(this) }>
<Text style={globle.buy_it_text}>BUY THIS</Text>
</TouchableHighlight>
</View>
);
});
return (
<View>
<ScrollView>
{list}
</ScrollView>
</View>
);
}
}
这是错误
试试下面的代码
getRow(news, i) {
return (
<View key={i}>
<Text>{news.product_name}</Text>
<View>
<Text>{news.Price}</Text>
</View>
<TouchableHighlight
style={globle.buy_it}
onPress={this.go_to_details.bind(this)}>
<Text style={globle.buy_it_text}>BUY THIS</Text>
</TouchableHighlight>
</View>
);
}
render() {
//var tmp_array =.... //intialise array
var list = tmp_array.map(this.getRow.bind(this));
return (
<View>
<ScrollView>
{list}
</ScrollView>
</View>
);
}
我所做的更改是
- 添加绑定到地图函数调用
- 修改TouchableHighlight中的onPress绑定语句