【发布时间】:2020-01-24 07:24:40
【问题描述】:
我正在尝试使用react-admin 创建一个漂亮的管理仪表板。
在我的后端使用spring,这就是我向react-admin 发送数据的方式:
@GetMapping("admin/user")
ResponseEntity<List<User>> getAll()
{
System.out.println(new Date());;
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("Content-Range", "posts 0-"+userRepository.findAll().size() + "/" + userRepository.findAll().size());
responseHeaders.set("Origin", "http://localhost:3001");
return ResponseEntity.ok()
.headers(responseHeaders)
.body(userRepository.findAll());
}
首先这不起作用,其次,这甚至不是正确的解决方案。
不幸的是,我的客户一遍又一遍地渲染最后一件事。
正如您在下面中看到的那样,带有id 129 的元素被一遍又一遍地渲染!
在前端,在react.js内:
// Within main/parent component
class App extends Component {
render() {
return (
<Admin dataProvider={restProvider('http://localhost:8080/admin')}>
<Resource name="user" list={UserList}/>
</Admin>
);
}
};
// child component
const UserList = (props) => (
<List {...props}>
<Datagrid>
<TextField source="userID" />
<TextField source="username" />
<TextField source="firstName" />
<TextField source="middleName" />
<TextField source="lastName" />
<TextField source="profileImageURL" />
<DateField source="joiningTime" />
<EditButton basePath="/posts" />
</Datagrid>
</List>
);
我想我需要一种方法,用Content-Range 标头配置每个控制器响应。
请注意,我返回的数据在postman 中工作正常:
【问题讨论】:
-
你确定你得到了不同的用户响应吗????
-
如果是,那么请添加您要在前端渲染的代码
-
@PrakashKarena 添加了前端代码,是的,用邮递员测试过,工作正常...
-
这里是邮递员回复的快照:i.stack.imgur.com/IP9FW.png
-
每条记录都需要一个
id字段,您的似乎错过了它。控制台应显示有关它的警告。
标签: reactjs spring spring-boot spring-mvc react-admin