gpt4 book ai didi

javascript - 使用 Realm 结果 react native ListView

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:14 26 4
gpt4 key购买 nike

我正在尝试创建一个 react-native ListView 来呈现 Realm 返回的结果。我一直在按照我发现的有关 react-native 的 ListView 以及如何使用 Realm 的说明进行操作。

但是我总是遇到同样的错误:Objects are not valid as a React child (found: [object Results])。如果您打算渲染子集合,请改用数组或使用 React 附加组件中的 createFragment(object) 包装对象。检查“文本”的渲染方法。

根据我从 Realm 文档和其他文章中了解到的结果,Results 对象的行为应该像一个 javascript 列表,因此应该被接受到 cloneWithRows 方法中。

如果有人可以告诉我我做错了什么或如何解决这个问题,我们将不胜感激。

附言我已经尝试过 react-native 的 ListView 和 Realm 的 ListView,两者的行为方式相同。

import React, { Component } from 'react';
import {
StyleSheet,
View,
Text,
Navigator,
TouchableHighlight,
TouchableOpacity,
//ListView,
} from 'react-native';
import { ListView } from 'realm/react-native';

import realm from './myrealm'

class contextview extends Component {
getState() {
console.log("getInitialState");
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
let pictures = [ realm.objects('picture').filtered('new == true') ];
console.log("pictures: " + pictures);
return {
//dataSource: ds.cloneWithRows(['row 1', 'row 2', 'row 3']),
dataSource: ds.cloneWithRows(pictures)
};
}

constructor(props)
{
super(props);
this.state = this.getState();
this.bindMethods();
}

render() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData) => <Text>{rowData}</Text>}
/>
);
}
}

最佳答案

调用 cloneWithRows 时是否出现此错误?如果是这样,您可能需要在使用 Realm.ListView 时对 Realm.Results 对象的快照调用 cloneWithRows。这是在 Realm 示例中完成的 here .所以也许尝试使用 Realm.ListView 并将代码更改为:

let pictures = [ realm.objects('picture').filtered('new == true').snapshot() ];

关于javascript - 使用 Realm 结果 react native ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38555931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com