我正在做一个公开的祈祷日志,你也可以在里面添加你最喜欢的圣经经文,一堆一堆。每当我试图添加一个祈祷(或诗句),我得到这个错误:“caught(in promise)TypeError:无法读取undefined的属性(阅读'id')"。
useEffect(() => {
getPrayers().then(setPrayer);
if (object.id) setFormInput(object);
}, [object]);
const handleChange = (e) => {
const { name, value } = e.target;
setFormInput((prevState) => ({
...prevState,
[name]: value,
}));
};
const handleSubmit = (e) => {
e.preventDefault();
if (object.id) {
updatePrayer(formInput, object.id)
.then(() => router.push('/prayers'));
} else {
const payload = { ...formInput };
createPrayer(payload).then(setFormInput(initialState));
}
};
我尝试将www.example.com更改user.id为user.uid,并将uid更改为user
const createPrayer = (prayerObj, user) => new Promise((resolve, reject) => {
const prayer = {
content: prayerObj.content,
publication_date: prayerObj.pub_date,
uid: user.id,
};
fetch(`${dbUrl}/prayers`, {
method: 'POST',
body: JSON.stringify(prayer),
headers: {
'Content-Type': 'application/json',
},
})
.then((response) => resolve(response.json()))
.catch((error) => reject(error));
});
1条答案
按热度按时间k5ifujac1#
最好是显示错误的来源,但是我假设它是这个函数:
这里你设置
uid: user.id
,user是函数的参数,但这里没有提供createPrayer(payload).then(setFormInput(initialState));
因此user是undefined,这是你的错误。
更详细地介绍一下,以便您下次了解错误(这是相当常见的)
TypeError:尝试创建时无法读取未定义的属性(阅读“property”)
js中的对象是{}。你放在对象内部的任何东西都是一个属性,所以:
所以错误不能读取未定义的属性(阅读属性)是说obj没有定义,所以我不能得到属性的值。