reactjs 将错误消息作为javascript中的返回值[已关闭]

oewdyzsn  于 2022-12-03  发布在  React
关注(0)|答案(1)|浏览(104)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
22小时前关门了。
Improve this question
我正在使用axios向后端发送一个post请求。我通过try-catch-block来处理可能出现的错误。现在我从后端收到一个错误消息,我想向用户显示这个消息(所以没有console.log)。
我可以通过console.log在catch部分得到错误信息,但是当我使用return代替视图部分的错误信息时,return不起作用。我如何让我的函数在catch块中返回错误信息呢?我尝试使用finally和一个变量来存储消息,但是也不起作用。

nnsrf1az

nnsrf1az1#

有很多替代方法。一个简单的解决方案是使用一个带有useState的变量,例如:

const [error,setError]=useState(false);
const [errorMessage,setErrorMessage]=useState('Something went wrong!');

(我假设您已经使用了一个error变量)。

try{
//axios blah blah
}catch(error){
setError(true)
setErrorMessage(error.response.message)
}

然后在你回来的时候

return(
//blah blah

{error && <div className='somethingForTheStyle'>{message}</div>}

//blah blah
)

很明显,如果你没有error变量,你可以只使用message变量做同样的事情。只是不要忘记设置error变量,当你没有错误的时候返回false。(我认为对于很多其他错误有一个error变量是很好的)。
对于最后一个,你可以有一个useEffect来设置你的错误变量false一段时间后如果你想要的话。

相关问题