我用react admin创建了简单的菜单和列表视图。左侧有三个菜单项,如"仪表板"、"帖子"one_answers"用户列表"。主视图是显示左侧菜单项中的内容。示例代码如下所示;
// App.js
const App = () => (
<Admin dashboard={Dashboard} dataProvider={dataProvider}>
<Resource name="posts" list={PostList} edit={PostEdit} create={PostCreate} icon={PostIcon}/>
<Resource name="users" list={UserList} icon={UserIcon}/>
</Admin>
);
// Users.js
export class PostActions extends Component {
render() {
return (<CardActions>
<Button color="primary" >Search</Button>
</CardActions>)
}
}
export class UserList extends Component {
render() {
return (<List {...this.props} filters={<UsersFilter/>} actions={<PostActions onSearch={this.props.onSearch}/>}>
<Datagrid rowClick="edit">
<TextField source="id"/>
<TextField source="name"/>
<TextField source="username"/>
<EmailField source="email"/>
<TextField source="address.street"/>
<TextField source="phone"/>
<MyUrlField source="website"/>
<TextField source="company.name"/>
</Datagrid>
</List>)
}
}
在上面的示例代码中,当单击左菜单按钮时,将从服务器获取主列表内容。但我试图只在单击菜单按钮时查看空列表视图,并且当我在带有过滤器的主视图中单击搜索按钮时加载完整内容。
菜单和列表的屏幕截图
如果没有提供任何代码,很难向您提供说明,但请尝试获得以下内容:
您可以设置Loading布尔状态和Loading组件(例如,像纺车(。
单击函数触发器后,您可以将此状态设置为false,并显示Loading Component,同时隐藏需要数据的组件。
请求完成后,您可以然后将Loading状态设置为false并隐藏Loading Component并显示数据。