[英]React toastify called based on condition outside render
我正在嘗試在 react 中創建一個通知系統,我使用react-toastify
系統
到目前為止,我有一個連接到我的服務器的套接字連接(使用socket.io
),只要發生通知,它就會向客戶端發送響應。
const {endpoint} = this.state
const socket = socketIOClient(endpoint);
console.log("created")
socket.on('updatelogs', data =>
this.setState({logs: data},
() => createNotification(data.pop().log.level, data.pop().log.message))) // here i use a callback to create the notification
}
我有一個日志系統,我將最后一個添加到堆棧中的log
並根據其中的屬性傳遞它。
在我的createNotficiation
function 里面我有一些像這樣的虛擬邏輯。
export const createNotification = (level, message) =>{
switch (level) {
case 'info':
return toast('info')
case 'success':
return toast("success");
case 'warning':
return toast("warning");
case 'error':
return toast("error");
}
}
在這里,我想根據傳入的內容調用toast
,但沒有渲染。 我嘗試了一個簡單的alert
,效果很好。
這是我的吐司配置
App.js
內部:
render() {
toast.configure();
return (
<div className="App">
<NewComponent
name={this.state.name} handleChange={this.setNameHandler}
preproccessHandler={this.setPreprocessHandler} isPreproccess={this.state.isProcessedData}
hasProcessedDBScan={this.state.isProcessedDBScan} setProcessedHandler={this.setProcessedHandler}
validateFileHandler={this.validateFileHandler} isUploadedFiles={this.state.isUploadedFiles}/>
<ToastContainer />
</div>
嘗試渲染一個 div 而不是 toast,背景顏色為紅色,寬度為 200px。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.