React Native ListView技术问题:仅修改单个属性的实现方法
嘿,这事儿很简单,你只需要精准定位到要修改的那个属性,单独调整它就行,完全不用动其他代码,这样就不会影响整体效果啦!我分两种常见情况给你说明:
情况1:修改ListView组件自身的属性
比如你想给ListView加个样式、调整列表的滚动行为之类的,直接在<ListView>标签里添加或修改目标属性就好,其他原有属性(比如dataSource、renderRow)保持原样。举个例子,如果你想给ListView加个内边距样式:
<ListView dataSource={this.state.dataSource} renderRow={ (rowData) => <CardToefl onPress={() => Actions.questDetay({zamqi: rowData.stept_id})} stept={rowData.stept_baslik} descriptionEnglish={rowData.stept_ingdesc} descriptionTurkish={rowData.stept_trdesc} myId={rowData.stept_id} progreset={this.props.processDetayDeger} /> } // 新增/修改的属性,比如这里加个样式 style={{ paddingHorizontal: 15, flex: 1 }} ></ListView>
情况2:修改renderRow里CardToefl的某个属性
如果你要改的是列表项里CardToefl的某个props,比如调整progreset的值、修改onPress的跳转参数,那就只需要找到CardToefl对应的属性修改,其他props和逻辑都不动。比如你想把progreset换成新的props值:
<ListView dataSource={this.state.dataSource} renderRow={ (rowData) => <CardToefl onPress={() => Actions.questDetay({zamqi: rowData.stept_id})} stept={rowData.stept_baslik} descriptionEnglish={rowData.stept_ingdesc} descriptionTurkish={rowData.stept_trdesc} myId={rowData.stept_id} // 只修改这一个属性,其他保持不变 progreset={this.props.newProcessValue} /> } ></ListView>
小提醒
修改的时候一定要只动目标属性,其他代码原封不动,这样就能保证整体效果不会因为修改而跑偏啦!
内容的提问来源于stack exchange,提问作者sametpalitci
相关产品推荐
相关产品推荐

