錯誤:設定失敗:值引數在屬性“users.id.username.userN”中包含無效鍵 (__reactFiber$3ojngwn446u)。鍵必須是非空字串,并且不能包含“.”、“#”、“$”、“/”、“[”或“]”
那是我在第 25 行得到的錯誤代碼。從我能夠收集到的內容中,因為 userN 不能是空值。他們是否可以解決 document.getElementById 的問題?因為它在提交之前回傳一個空值。
function writeUserData(userId, userN, address) {
const db = getDatabase();
const reference = ref(db, 'users/' userId);
set(reference, {
username: userN,
walletAddress: address
});
}
return (
<>
<div>
<p className = "account-Info" >address: {address}</p>
</div>
<div id="form">
<h2 className='user-Create' > Create Username</h2>
<form id='set-User'>
<input id='userName' className='user-Create' type='text' placeholder="username" required minlength='3' maxlength='20' pattern="[a-zA-z0-9_] " title='only letterns, numbers, and underscores'/>
<button className='user-Create' type="submit" onClick={ getValue() }>Link Username</button>
</form>
</div>
</>
);
function getValue() {
userN = document.getElementById('userName');
writeUserData('id', { userN }, { address })
}
}
}
匯出默認用戶名;`
uj5u.com熱心網友回復:
您需要在組件/頁面狀態下創建一個變數。然后將其系結到輸入并將其用于您的功能。
const [username, setUsername] = useState('')
...
<input id='username' type='text' value={username} onChange={event => setUsername(event.target.value)}/>
...
writeUserData('id', { username }, { address })
由于 NextJS 是服務器端,因此您無法訪問 DOM(沒有明確告訴它應該是客戶端)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493293.html
標籤:javascript 反应 火力基地 下一个.js
上一篇:洗掉工具提示透明度
下一篇:正則運算式從字串中提取用戶名
