【发布时间】:2016-02-15 13:36:37
【问题描述】:
【问题讨论】:
-
我们需要更多信息来提供帮助。您是否将数据存储在本地?您是否通过请求获取数据?也许发布一些代码,以便我们可以看到您的问题所在。
-
我的数据存储在json文件中。
标签: javascript reactjs react-native
【问题讨论】:
标签: javascript reactjs react-native
好的,所以根据你提供给我们的少量信息,我试着做一个简单的例子(根本没有设计),你可以找到here
我会让你做造型。
从 JSON 文件中读取数据:检查 this
代码如下:
'use strict';
var React = require('react-native');
var {
AppRegistry,
Component,
StyleSheet,
Text,
TextInput,
ListView,
View,
} = React;
var adresses = [
{
street: "1 Martin Place",
city: "Sydney",
country: "Australia"
},{
street: "1 Martin Street",
city: "Sydney",
country: "Australia"
}
];
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
class SampleApp extends Component {
constructor(props) {
super(props);
this.state = {
searchedAdresses: []
};
};
searchedAdresses = (searchedText) => {
var searchedAdresses = adresses.filter(function(adress) {
return adress.street.toLowerCase().indexOf(searchedText.toLowerCase()) > -1;
});
this.setState({searchedAdresses: searchedAdresses});
};
renderAdress = (adress) => {
return (
<View>
<Text>{adress.street}, {adress.city}, {adress.country}</Text>
</View>
);
};
render() {
return (
<View style={styles.container}>
<TextInput
style={styles.textinput}
onChangeText={this.searchedAdresses}
placeholder="Type your adress here" />
<ListView
dataSource={ds.cloneWithRows(this.state.searchedAdresses)}
renderRow={this.renderAdress} />
</View>
);
};
}
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#FFFFFF',
},
textinput: {
marginTop: 30,
backgroundColor: '#DDDDDD',
height: 40,
width: 200
}
});
AppRegistry.registerComponent('SampleApp', () => SampleApp);
【讨论】: