如果我的相機組件回傳一些錯誤,我想顯示一個快餐欄通知。我試圖將組件放在一個函式中并將錯誤訊息作為道具傳遞,并在 if 陳述句中呼叫它但沒有用。我還嘗試回傳小吃店本身,也沒有顯示出來,而 console.log 或警報訊息在這兩種方式下都可以正常作業。我沒有顯示代碼的某些部分,因為它是私有的,我只顯示有關小吃店的部分。無論如何,如果只是在snackBar 函式中放置一些console.log 或alert,它會很好地回傳它。問題出在小吃店。這是我的代碼:
import React from 'react'
import Snackbar from '@mui/material/Snackbar'
const Camera = () => {
const [open, setOpen] = useState(false)
const snackBar = (errorMessage) => {
setOpen(true)
return <Snackbar open={open} message={errorMessage} />
}
let callback = {
error: function (error) {
console.log(error)
if (error.code === 100) {
return snackBar('error occured')
}
} else if (error.code === 104) {
console.log('104')
return snackBar('Please don't move the phone')
} else if (error.code === 105) {
console.log('105')
setOpen(true)
return snackBar('Try again')}
},
}
return (
<div>
<h1>Camera</h1>
</div>
)
}
匯出默認相機
uj5u.com熱心網友回復:
您沒有在任何地方呼叫回呼或snackBar,也沒有在任何JSX 中回傳。你也忘記了 import useState。
如果您的意圖是提供一個回呼來處理錯誤(例如在獲取時),然后顯示小吃欄,這里是一個如何使用(非常粗略的偽代碼)回呼示例的示例
import { Snackbar } from "@mui/material"
import { useState } from "react"
const Camera = () => {
const [errorMessage, setErrorMessage] = useState(null)
const callback = (error) => {
if(error.code === '100') {
setErrorMessage('Message 100')
} else if(error.code === '105') {
setErrorMessage('Message 105')
} // ... add all your other else-ifs here
}
return (
<div>
<h1>camera</h1>
{errorMessage && <Snackbar open={errorMessage} message={errorMessage} />}
</div>
)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/408464.html
標籤:
上一篇:在生產中使用硒的標準方法是什么?
