父組件似乎無法訪問ErrorMessage。我收到此錯誤。。。
對象作為React子對象無效(已找到:鍵為{error_msg})的對象。如果要呈現子對象的集合,請改用數組。
我檢查了一下,error_msg就是錯誤消息。
在父組件中,我有。。。
function App() {
const [ErrorMessage, setErrorMessage] = useState('');
const handleClickUpdate = async (event) => {
...
const error_msg = Validation(postData)
setErrorMessage(error_msg)
...
}
<button type="submit" onClick={() =>
handleClickUpdate({stuff})}>Update</button>
return (
<div>
<Submit setSomethingElse={somethingElse} setErrorMessage={(error) =>setErrorMessage(error)} ErrorMessage={ErrorMessage} />
</div>
<div className="error-message"> {ErrorMessage}</div>
);
}
因此,在子組件中:
function Submit({ setSomethingElse, setErrorMessage,
ErrorMessage }) {
const handleSubmit = async (event) => {
...
setErrorMessage('Error Message')
...
}
但是errorMessage即使在賦值之后也是空的。我沒有正確地傳遞道具嗎?
return (
<form onSubmit={handleSubmit}>
...
<div>{ErrorMessage}</div>
</form>
);
}
您可以嘗試以下方法,而不是直接將函數作為道具傳遞:
在子組件中,您可以像已經在做的那樣使用函數。