【发布时间】:2016-11-27 17:37:35
【问题描述】:
我想制作简单的 CRUD 功能,在我的网络应用、Android 应用和 iOS 应用中应该是相同的。
因此,我在node.js 中创建了一个 API,我可以从中检索所有文档的分页列表、每个文档的详细信息页面以及要删除和更新的发布/放置请求。
现在我可以在这些路由上检查管理员权限和其他内容。这是正确的方法吗?
现在我想遍历这个分页列表并用 reactjs 呈现。
我想这可以用
import React from 'react';
import ReactDOM from 'react-dom';
export default class ItemLister extends React.Component {
constructor() {
super();
this.state = { items: [] };
console.log('test');
}
componentDidMount() {
fetch('/api/events/').then(result => {
this.setState({items:result.json()});
});
}
render() {
return (
<div>
<div>Items:</div>
{ this.state.items.map(item => { return <div>{http://item.name}</div>}) }
</div>
);
}
}
ReactDOM.render(<ItemLister/>, document.getElementById('hello-world'));
但是什么也没发生(它甚至没有在控制台窗口中打印任何东西,就像我在构造函数中尝试的那样)。
我在文件/components/ItemLister.jsx 中有这个脚本,并且我已经导入了react-15.2.1 和react-dom-15.2.1。我已经安装了babel-cli、babel-preset-es2015、babel-preset-react 并设置了
"presets": [
"es2015",
"react"
]
在我的package.json。
【问题讨论】:
-
它不会给出错误 - this.setState 是未定义的或等效的。将 catch() 处理程序添加到 fetch() 并检查是否有错误。
-
试试
fetch('/api/events/').then(res=>res.json()).then(items=> this.setState({items})) -
和 {"http://"+item.name}
标签: javascript node.js api reactjs