db-models에서 ListView로 가져 오려고합니다. 여기 내 코드는 다음과 같습니다.React db-models에서 기본 가져 오기
export default class todoDB extends Component {
constructor(props) {
super(props);
this.state = {
dataSource : new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2})
};
}
componentDidMount() {
this.fetchData();
}
fetchData() {
DB.users.get_all(function(result) {
let data = [];
for(let i = 1; i <= result.totalrows; i++) {
data.push(result.rows[i]);
}
this.setState({
dataSource: dataSource.cloneWithRows(data),
})
});
}
render() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderList}
/>
);
}
renderList (item) {
return (
<View>
<Text>{item.age}</Text>
</View>
);
}};
실행 후 오류 또는 출력이 없으면 빈 화면 만 있습니다. "반응"
- 사용하여 I : "15.4.2",
- "반응 네이티브": "0.40.0"
- "반응 - 기본 - DB-모델을": "^ 0.1. 3 "
은'''this''' 함수 안에 있습니다 (결과), 여전히 클래스에 바인딩되어 있습니까? –
'fetchData()'에 에러가 있다고 생각합니다.'setState'에서'dataSource : this.state.dataSource.cloneWithRows (data)'가되어야합니다. – kuby
@kuby 당신이 맞다고 생각하지만, '''prevState''' 예 :'''this.setState ((prevState, props) => {})'''(https://facebook.github.io/react/docs/react-component.html##) 정가) –