【问题标题】:react-native AutoComplete text input [closed]react-native AutoComplete文本输入[关闭]
【发布时间】:2016-02-15 13:36:37
【问题描述】:

例如,我有一个城镇列表。我需要创建类似的东西 this

如何创建它(适用于 Android 和 IOS)?我应该把它存放在哪里?

【问题讨论】:

  • 我们需要更多信息来提供帮助。您是否将数据存储在本地?您是否通过请求获取数据?也许发布一些代码,以便我们可以看到您的问题所在。
  • 我的数据存储在json文件中。

标签: javascript reactjs react-native


【解决方案1】:

好的,所以根据你提供给我们的少量信息,我试着做一个简单的例子(根本没有设计),你可以找到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);

【讨论】:

  • 感谢您的解决方案!
  • 它不再可用...
  • 链接已损坏。
  • @Gp2mv3 我把代码放在零食里:snack.expo.io/@niklasro/readjson
  • ListView 已弃用。任何其他可用的选项来实现这一目标
猜你喜欢
  • 1970-01-01
  • 2016-12-01
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
相关资源
最近更新 更多