私はこのように試しましたが、何もしません:
const myToast = () => (
<div style={{backgroundColor: myColors.green}}>
...some text content...
</div>
)
次にApp.jsで
class App extends Component {
showMyToast = () => {
toast(<MyToast />, {
closeOnClick: false,
toastId: 'my_toast',
autoClose: true,
closeButton: false,
position: toast.POSITION.BOTTOM_CENTER,
className: 'toast'
})
}
}
テキストが書かれた白いトーストが見えます。
@Laurensの回答に基づいて、コードサンドボックスのパターンが非常に役立つことがわかりました。以下に示す通知を受け取るために私がしたことは次のとおりです
まず、トーストコンテナをアプリのルートのApp
コンポーネント内にマウントしました
import React from 'react';
import { Provider } from 'react-redux';
import { ToastContainer } from 'react-toastify';
import store from './redux/store';
import Routes from './Routes';
const App = () => {
return (
<Provider store={store}>
<ToastContainer
autoClose={2000}
position="top-center"
className="toast-container"
toastClassName="dark-toast"
/>
<Routes />
</Provider>
);
};
次に、通知スタイルごとに、一連のCSSスタイルを定義しました。コンポーネントはそのように見えました
// customToast.js
import { toast } from 'react-toastify';
import { css } from 'glamor';
const customToast = {
success(msg, options = {}) {
return toast.success(msg, {
...options,
className: 'toast-success-container toast-success-container-after',
progressClassName: css({
background: '#34A853',
}),
});
},
error(msg, options = {}) {
return toast.error(msg, {
...options,
className: 'toast-error-container toast-error-container-after',
progressClassName: css({
background: '#EE0022',
}),
});
},
info(msg, options = {}) {
return toast.error(msg, {
...options,
className: 'toast-info-container toast-info-container-after',
progressClassName: css({
background: '#07F',
}),
});
},
};
export default customToast;
これらを使用するには、import customToast from 'customToast.js'
を実行します。これで、customToast.success
、customToast.error
などを使用できます
成功通知のスタイルを以下に示します
.toast-success-container {
color: #000 !important;
border-radius: 8px !important;
background: #FFFFFF !important;
border: 1px solid #34A853 !important;
box-shadow: 0px 1px 5px rgba(248, 175, 175, 0.1) !important;
}
.toast-success-container-after {
overflow: hidden;
position: relative;
}
.toast-success-container-after::after{
top: 0;
left: 0;
content: '';
width: 7px;
height: 100%;
position: absolute;
display: inline-block;
background-color: #34A853;
}
また、CSSに一連の!important
を貼り付けなければならなかったことにも気付くでしょう。
1.次のリンクを使用してglamorousをインストールします https://glamorous.rocks/basics/#installation
2.その後、このようにcssをjsファイルにインポートします。
import { css } from 'glamor';
3.その後、このようなトーストポップアップに独自のスタイルを与えます。
toast.configure({
autoClose:10000,
draggable: true,
hideProgressBar: true,
position: toast.POSITION.TOP_CENTER,
toastClassName: css({
fontSize: '18px !important',
backgroundColor: '#da1c36 !important',
padding: '15px !important'
}),
});