React-admin:多行通知消息
React-admin: Multi-line notification messages
如何让 react-admin 在 snackbar 上显示多行通知/错误消息?
具有以下数据提供者:
export default (type, resource, params) => {
throw new Error(`
Message line 1.
Message line 2.
Message line 3.
`);
};
加载列表组件时显示单行消息:
error notification screenshot
好的,在 docs 的帮助下,我设法完成了我想做的事情。
定义 App 组件使用的自定义 Layout 组件并将其传递给自定义 Notification 组件。
// ./MyLayout.js
import React from 'react';
import { Layout } from 'react-admin';
import MyNotification from "../MyNotification";
const CustomLayout = props => (
<Layout {...props} notification={MyNotification} />
);
export default CustomLayout;
然后我将自定义 CSS class 传递给通知组件。
// ./MyNotification.js
import React from 'react';
import {withStyles} from '@material-ui/core/styles';
import {Notification} from 'react-admin';
// Allow multi-line messages to be displayed
const cssMsg = {
snackbarContent: {
whiteSpace: 'pre-wrap'
}
};
const MyNotification = withStyles(cssMsg)(({classes, ...props}) => (
<Notification {...props} className={classes.snackbarContent}/>
));
export default MyNotification;
error notification screenshot multi-line
如何让 react-admin 在 snackbar 上显示多行通知/错误消息?
具有以下数据提供者:
export default (type, resource, params) => {
throw new Error(`
Message line 1.
Message line 2.
Message line 3.
`);
};
加载列表组件时显示单行消息:
error notification screenshot
好的,在 docs 的帮助下,我设法完成了我想做的事情。 定义 App 组件使用的自定义 Layout 组件并将其传递给自定义 Notification 组件。
// ./MyLayout.js
import React from 'react';
import { Layout } from 'react-admin';
import MyNotification from "../MyNotification";
const CustomLayout = props => (
<Layout {...props} notification={MyNotification} />
);
export default CustomLayout;
然后我将自定义 CSS class 传递给通知组件。
// ./MyNotification.js
import React from 'react';
import {withStyles} from '@material-ui/core/styles';
import {Notification} from 'react-admin';
// Allow multi-line messages to be displayed
const cssMsg = {
snackbarContent: {
whiteSpace: 'pre-wrap'
}
};
const MyNotification = withStyles(cssMsg)(({classes, ...props}) => (
<Notification {...props} className={classes.snackbarContent}/>
));
export default MyNotification;
error notification screenshot multi-line