实现查找
最后更新于:2022-04-01 04:30:07
新建一个 SearchPage.js 文件,保存在 index.ios.js同一目录。在这个文件中加入代码:
~~~
'use strict';
var React = require('react-native');
var {
StyleSheet,
Text,
TextInput,
View,
TouchableHighlight,
ActivityIndicatorIOS,
Image,
Component
} = React;
~~~
这里使用了一个解构赋值(destructuring assignment),可以将多个对象属性一次性赋给多个变量。这样,在后面的代码中,我们就可以省略掉React前缀,比如用StyleSheet 来代替 React.StyleSheet。解构赋值对于数组操作来说尤其方便,请参考[well worth learning more about.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)
然后定义如下Css样式:
~~~
var styles = StyleSheet.create({
description: {
marginBottom: 20,
fontSize: 18,
textAlign: ‘center’,
color: ‘#656565′
},
container: {
padding: 30,
marginTop: 65,
alignItems: ‘center’
}
});
~~~
这里,再次使用了标准的 CSS 属性。虽然用CSS设置样式在可视化方面比起在IB中要差一些,但总比在viewDidLoad()方法中用代码写要好一些。
然后加入以下代码:
~~~
class SearchPage extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.description}>
Search for houses to buy!
</Text>
<Text style={styles.description}>
Search by place-name, postcode or search near your location.
</Text>
</View>
);
}
}
~~~
在render方法中使用了大量的JSX语法来构造UI组件。通过这种方式,你可以非常容易地构造出如下组件:在一个Container View中包含了两个label。
在源文件的最后加入这一句:
~~~
module.exports = SearchPage;
~~~
这一句将使 SearchPage 类可被其他js文件引用。
然后需要修改App的导航。
打开 index.ios.js 在文件头部、现有的require 语句后加入 require 语句:
~~~
var SearchPage = require('./SearchPage');
~~~
在 PropertyFinderApp 类的 render 函数中,修改 initialRoute 为:
~~~
component: SearchPage
~~~
这里我们可以将HelloWorld类和它对应的样式移除了,我们不再需要它。
回到模拟器,按下 Cmd+R 查看效果:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-10-27_562f20d1e7adb.png)
你新创建的组件SearchPage显示在屏幕中。