关于购买界面实现思路
来源:互联网 发布:librosa有c语言版本吗 编辑:程序博客网 时间:2024/05/15 07:42
问题:要在一个输入框中同时实现输入和赋值操作,当页面是从前一个页面跳转时,实现带入值;当输入内容时,实现实时搜索和内容展示功能?
解决思路,当页面进行跳转时,直接利用属性传值,搜索展示时,增加一个判断变量,决定应该利用那个组件
解决方法和代码
1、当用户点击已经拥有的内容数据时,调用点击方法,同时调用数据接口和状态机中变量值得改变,以保证能够在确认订单的时候,订单数据内容准确:
//点击事件 buyClickAction(rowData){ console.log('选中的数据内容',rowData); var newData = this.state.orderData; newData.name = rowData.name + ' ' + rowData.mark; newData.price = rowData.price; newData.num = rowData.default; newData.id = rowData.id; this.setState({ marketData: rowData, orderData: newData, isSearch: true, }); //获取五档图数据 this.loadFiveBuyRangeData(rowData); this.loadFiveSellRangeData(rowData); },
2、当文本框中内容改变时,调用属性方法,在属性方法中实现内容的搜索功能:
<TextInput style={styles.textInputStyle} defaultValue={this.props.buyData.name + ' ' + this.props.buyData.mark} placeholder='发行人姓名/代码' placeholderTextColor='black' onChangeText={this.props.nameTextChange} autoCapitalize='none' clearButtonMode='while-editing'></TextInput>
同时要更新状态机中的isSearch的值,以保证组件状态的改变,能够显示出搜索的结果内容:
//文本框中内容改变 nameTextChange(newName){ var newData = this.state.orderData; newData.name = newName; this.setState({ orderData: newData, isSearch: false, }); this.getSearchDataFromNet(newName); },
另外要将搜索到的结果通过属性传值,传递到子组件中:
<View style={styles.topViewStyle}> <Buy buyData={this.state.marketData} buyClick={this.buyClick} nameTextChange={this.nameTextChange} priceTextChange={this.priceTextChange} numTextChange={this.numTextChange} isSearch={this.state.isSearch} searchData={this.state.searchData} buyClickAction={this.buyClickAction}></Buy>
3、点击购买按钮时要弹出确认订单内容界面:
//点击购买按钮事件 buyClick(){ if (this.state.marketData.name) { let isShow = this.state.show; this.setState({ show: !isShow, }); }else { Alert.alert('请输入发行人姓名/代码!'); } },
通过show属性决定界面的显隐状态:
<MakeSureOrder show={this.state.show} orderData={this.state.orderData} states={'购买'} backClick={this.backClick}></MakeSureOrder>
4、搜索属性控制的组件状态的改变,决定是加载显示组件还是listView组件:
{ this.props.isSearch ? <View style={styles.viewStyle}> <View style={styles.contentViewStyle}> <TouchableOpacity style={styles.leftImageStyle} onPress={this.priceSubtract}> <Image source={require('../img/Market/jianhao.png')}></Image> </TouchableOpacity> <TextInput style={styles.textInputStyle} defaultValue={this.props.buyData.price} onChangeText={this.props.priceTextChange} placeholder='购买价格(元)' placeholderTextColor='gray' autoCapitalize='none' clearButtonMode='while-editing' keyboardType='number-pad'></TextInput> <TouchableOpacity style={styles.rightImageStyle} onPress={this.priceAdd}> <Image source={require('../img/Market/jiahao.png')}></Image> </TouchableOpacity> </View> <View style={styles.contentViewStyle}> <TouchableOpacity style={styles.leftImageStyle} onPress={this.numSubtract}> <Image source={require('../img/Market/jianhao.png')}></Image> </TouchableOpacity> <TextInput style={styles.textInputStyle} defaultValue={this.props.buyData.default} onChangeText={this.props.numTextChange} placeholder='购买数量(份)' placeholderTextColor='gray' autoCapitalize='none' clearButtonMode='while-editing' keyboardType='number-pad'></TextInput> <TouchableOpacity style={styles.rightImageStyle} onPress={this.numAdd}> <Image source={require('../img/Market/jiahao.png')}></Image> </TouchableOpacity> </View> <TouchableOpacity style={styles.buyButtonStyle} onPress={this.props.buyClick}> <Text style={styles.buyButtonTextStyle}>购买</Text> </TouchableOpacity> </View> : <View> <ListView dataSource={this.state.dataSource.cloneWithRows(this.props.searchData)} renderRow={this.renderRow} enableEmptySections={true} > </ListView> </View> }
5、实现的过程中一些值得传递,状态的改变,有一部分逻辑需要细细思考一下,好好考量一下!TextInput中无法直接赋值,所以页面跳转和点击出现的值通过defaultValue
这一属性确定,但是当用户点击加减号的时候,状态值就无法改变了,这一内容还需要好好修改一下!
阅读全文
0 0
- 关于购买界面实现思路
- C# 项目启动界面 实现思路
- iOS汽包聊天界面实现思路
- 关于分页的实现思路
- 关于c与qt界面连接的思路,--工作总结
- 编写关于收银员的收银界面,显示购买个数,收银金额,找零金额的显示。
- 关于layerfsd的实现与思路
- 关于Bananer定时上线实现思路
- 界面Model修改更新的小思路与实现
- 大众点评 团购界面 以及 团购购买条浮动效果效果 实现:
- 关于购买php空间
- android 使用webView加载欢迎界面的个人实现思路,实现欢迎界面不断在改变
- 商业中心购买行为和习惯调查研究思路
- 用Hive+Hadoop集群实现《飞机票购买人群分类案例》思路+代码 (实验数据待整理)
- iphone 程购买实现
- Android:实现装备购买
- 界面程序分离思路
- 关于界面随着手指滑动的实现
- 抄袭人家的博客
- JMS之——ActiveMQ高可用集群安装、配置(基于ZooKeeper + LevelDB的伪集群)
- 一起来点React Native——常用组件之Touchable系列
- python 列表排序方法sort、sorted技巧篇(转自: aben)
- 学习笔记
- 关于购买界面实现思路
- JMS之——ActiveMQ 高可用与负载均衡集群安装、配置(ZooKeeper + LevelDB + Static discovery)
- 教你如何实现Android Pbap Client功能(即Car Kit)
- arm linux 更新源
- 爬取网易的新闻网站全函数
- 6. ZigZag Conversion
- poj 2955(Summer IV) 区间DP
- 详解深度优先搜索
- js获取浏览器高度和宽度值