react-native - 在 react-native 中使用 odata
问题描述
我正在尝试在一个小的 react-native 测试应用程序中使用 odata 库,但是当数据返回时列表没有填满。
const CONST_REST_WS_HOST = "DELETED";
const CONST_REST_WS_URL = "http:" + "//" + CONST_REST_WS_HOST + "/odata/";
var o = require('odata');
class Feed extends Component {
[EDIT - Added in setup of initial state
constructor(props) {
super(props);
this.state = { products: null };
}
[EDIT - Added in part loading the data]
componentWillMount() {
this.oProductHandler = o(CONST_REST_WS_URL + 'Products');
this.oProductHandler.take(20).get(function (data) {
this.setState({ products: data });
}.bind(this));
}
render() {
return (
<ScrollView>
<List>
<ListItem key="1" title="Sample Item" /> // THIS APPEARS IN LIST
{
this.state && this.state.products && this.state.products.map((item) => {
console.log(item.ItemCode); // THIS STUFF APPEARS
<ListItem
key={item.ProductId} // I DON'T SEE THESE THINGS
title={item.ItemCode}
/>
})
}
</List>
</ScrollView>
);
}
}
编辑 - 在 package.json 的部分添加
"odata": "^0.4.0",
"odata-query": "5.0.0",
"react": "16.3.1",
"react-dom": "16.3.0",
"react-native": "0.55.4",
"react-native-elements": "^0.18.5",
在视图中,我看到了列表,并且看到了第一个列表项“示例项”。我还看到了控制台中的项目。数据服务正在运行,我自己构建了它,它正在其他项目中运行。它也在这个项目中工作,因为我可以在控制台中看到项目代码。那么当 item.ItemCode 出现在控制台中时,为什么它们没有出现在列表中呢?对状态变化的反应是否在不同的环境中运行?我已经环顾了几天,他们似乎都遵循这种模式.. 填写数据,setState,重新运行渲染并填充组件。所有这些似乎都在工作,否则日志将为空。那么这里给出了什么? 编辑添加了更多代码和这些细节 我添加了评论中要求的更多项目和包装信息,以防万一版本发挥作用。这段代码现在是整个类,仅此而已。我还尝试将 ScrollView 和 List 放入条件 if (this.state && this.state.products) { 以便列表和列表项位于同一
麦克风
解决方案
我认为您只需要在地图闭包中添加 return :
{
this.state && this.state.products && this.state.products.map((item) => {
console.log(item.ItemCode); // THIS STUFF APPEARS
return (<ListItem
key={item.ProductId} // I DON'T SEE THESE THINGS
title={item.ItemCode}
/>);
})
}
推荐阅读
- django - 视图和视图集的 Django REST 差异
- angular - core.js ERROR TypeError: Array or DataSet expected for vis-network angular 10
- python - Pandas groupby cumsum 与 groupby sum 的工作方式有何不同?
- java - 使用 openJdk 14.0.1 运行新的 tornadoFX 应用程序时出错
- amazon-web-services - aws cognito 注销时令牌无效
- windows - 如何为不受支持的设备创建支持/创建驱动程序
- c++ - 带有模板和重载的 3D 矢量加法(+运算符和 += 运算符)
- r - rvest html_table 读取一个不完整的表
- javascript - aframe-physics-extras:动态实体与静态 gltf 模型的碰撞
- python-3.x - Win10 上的 Python3 和 PyQt5 忽略字体设置