我正在通過一個我夢想中的專案學習一些 React,該專案通過 props 和 pubsub 訊息傳遞資料。我正在通過 pubsub 傳遞一個電子郵件地址,它在 pubsub 訂閱方法中運行良好,如下所示:
myEmailChannel.subscribe("email", (msg) => {
let data = msg.data;
console.log(data);
});
以上結果在控制臺日志中
value: '[email protected]'
[email protected] 是我通過 pubsub 發送的虛假測驗電子郵件。當我嘗試將資料添加到已經初始化的“電子郵件”狀態陣列時,問題發生了,我收到了一些關于“物件作為 React 子物件無效(找到:帶有鍵 {value} 的物件) ”的瘋狂錯誤。如果你的意思是要呈現一組子項,請改用陣列。 ”我正在嘗試以下操作:
myEmailChannel.subscribe("email", (msg) => {
let data = msg.data;
console.log(data);
let emails = [...this.state.emails];
emails.push({ value: data });
this.setState({emails});
});
只是為了得到上述錯誤。實際上,無論我如何嘗試將資料添加到陣列中,都會發生這種情況。我想我明白我只是為狀態陣列錯誤地格式化了傳入資料?任何幫助將非常感激。
編輯:我更進一步地跟蹤了錯誤,它說當它嘗試遍歷陣列以進行顯示時發生錯誤:
{this.state.emails.map((email, index) => {
return (
<li key={index}>{email}</li>
);
})}
uj5u.com熱心網友回復:
正如你所提到的,email是一個物件。當你做這樣的事情時
this.state.emails.map((email, index) => (
<li key={index}>{email}</li>
))
反應變得混亂。它不知道是否應該將email物件視為字串(這正是您想要做的),還是將其呈現為組件。
你可以做這樣的事情。
this.state.emails.map((email, index) => (
<li key={index}>{email.value}</li>
))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/360659.html
標籤:javascript 反应
上一篇:在分配之前使用變數“值”
