Reactjs 如何在react admin资源中的两个列表组件之间共享实例
这就是组件在react admin中的实例化方式,但是现在我需要在PostList和UserList之间共享通知实例。我想避免单身。是否可以通过某种方式将“通知”对象传递给列表Reactjs 如何在react admin资源中的两个列表组件之间共享实例,reactjs,react-admin,Reactjs,React Admin,这就是组件在react admin中的实例化方式,但是现在我需要在PostList和UserList之间共享通知实例。我想避免单身。是否可以通过某种方式将“通知”对象传递给列表 import React from 'react'; import PostIcon from '@material-ui/icons/Book'; import UserIcon from '@material-ui/icons/People'; import { Admin, Resource } from 'rea
import React from 'react';
import PostIcon from '@material-ui/icons/Book';
import UserIcon from '@material-ui/icons/People';
import { Admin, Resource } from 'react-admin';
import jsonServerProvider from 'ra-data-json-server';
import { PostList } from './posts';
import { UserList } from './users';
import { Notifications } from './notifications';
var notifications = new Notifications();
const App = () => (
<Admin dataProvider={jsonServerProvider('https://jsonplaceholder.typicode.com')}>
<Resource name="posts" list={PostList} icon={PostIcon} />
<Resource name="users" list={UserList} icon={UserIcon} />
</Admin>
);
从“React”导入React;
从“@material ui/icons/Book”导入PostIcon;
从“@material ui/icons/People”导入用户图标;
从“react Admin”导入{Admin,Resource};
从“ra数据json服务器”导入jsonServerProvider;
从“./posts”导入{PostList};
从“/users”导入{UserList};
从“./Notifications”导入{Notifications};
var notifications=新通知();
常量应用=()=>(
);
提前感谢。在我看来,一切都得到了很好的实施:
从'react admin'导入{Layout};
从“/MyNotification”导入MyNotification;
常量MyLayout=(道具)=>;
常量应用=()=>(
// ...
);
将自定义道具传递给
组件对我来说不太合适,因此我尝试了几种不同的方法,这是一种适合我的要求的方法
因此,有一个默认的道具,您可以将它传递给名为选项的组件,该组件接受一个对象。通常,当您想要将标签
拉入资源时,您会看到使用此道具。其目的是定制此对象-
//在App.js中
然后在你的资源中访问它,比如-
//在Posts.js中
导出常量PostList=(道具)=>{
const{notifications,label}=props.options;
//您现在在这里有了通知对象
返回(
);
};
让我知道这是否对你有用 为这一点制定了上下文
import { Layout } from 'react-admin';
import MyNotification from './MyNotification';
const MyLayout = (props) => <Layout {...props} notification={MyNotification} />;
const App = () => (
<Admin layout={MyLayout} dataProvider={simpleRestProvider('http://path.to.my.api')}>
// ...
</Admin>
);