SortableListView 数据为空
来源:5-10 Popular(最热)模块的标签排序功能实现-1
kingofzihua
2018-07-25
import React, {Component} from 'react' import {TouchableOpacity, StyleSheet, ScrollView, Alert, Image, View, Text} from 'react-native' import SortableListView from 'react-native-sortable-listview'; import LanguageModel, {FLAG_LANGUAGE} from '../../expand/model/LanguageModel'; import NavigatorBar from '../../common/NavigatorBar' import ArrayUtils from '../../Util/ArrayUtils'; import ViewUtils from '../../Util/ViewUtils'; export default class SortKeyPage extends Component { constructor(props) { super(props); this.dataArray = [];//原始数组 this.sortResultArray = [];//排序完的数组 this.originalCheckedArray = [];//筛选后段数组 this.state = { checkedArray: [],//已经订阅数据 } this.languageModel = new LanguageModel(FLAG_LANGUAGE.flag_key); } componentDidMount() { this._loadData(); } /** * 获取订阅的数据 * @private */ _getCheckedItems(result) { this.dataArray = result; let checkedArray = []; for (let i = 0, j = result.length; i < j; i++) { let data = result[i]; if (data.checked)checkedArray.push(data); } this.setState({ checkedArray: checkedArray }) this.originalCheckedArray = ArrayUtils.clone(checkedArray); } /** * 加载数据 * @private */ _loadData() { this.languageModel.get().then(result => { this._getCheckedItems(result); }).catch(error => { console.log(error); }) } _goBack() { this.props.navigator.pop(); } render() { return <View> <NavigatorBar title={'标签排序'} leftButton={ViewUtils.getLeftButton(() => this._goBack())} /> <SortableListView style={{flex: 1, backgroundColor: 'red'}} data={this.state.checkedArray} order={Object.keys(this.state.checkedArray)} onRowMoved={(e) => { this.state.checkedArray.splice(e.to, 0, this.state.checkedArray.splice(e.from, 1)[0]); this.forceUpdate(); }} renderRow={row => <RowComponent data={row}/>} /> </View> } } class RowComponent extends Component { render() { return <View> <Text>{this.props.data.name}123</Text> </View> } } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: 'white' }, buttonView: { marginLeft: 10, marginRight: 10, }, buttonText: { fontSize: 18, color: 'white', }, group: { flexDirection: 'row', alignItems: 'center', }, groupLine: { height: 0.3, backgroundColor: 'darkgray', }, checkbox: { flex: 1, padding: 10, }, icon_image: { width: 20, height: 20, tintColor: '#6495ED' } })
我按照老师写的,然后页面一片空白,应该是我哪里写的不对吧,但是我找不到原因呢,我调试数据了,里面是有值的。但是页面不显示,一般有哪些情况呢?
写回答
2回答
-
kingofzihua
提问者
2018-07-25
md ,找到了,外层容器没有flex:1
112018-07-25 -
kingofzihua
提问者
2018-07-25
{ "name": "imooc_gp", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest" }, "dependencies": { "react": "~15.4.0-rc.4", "react-native": "0.40.0", "react-native-check-box": "^1.0.4", "react-native-easy-toast": "^1.1.0", "react-native-scrollable-tab-view": "^0.7.0", "react-native-sortable-listview": "^0.1.1", "react-native-tab-navigator": "^0.3.4" }, "devDependencies": { "babel-jest": "23.2.0", "babel-preset-react-native": "4.0.0", "jest": "23.3.0", "react-test-renderer": "~15.4.0-rc.4" }, "jest": { "preset": "react-native" } }
00
相似问题