我從后端收到這樣的陣列:
[ { id:0,名稱:“John”,語言:“Enlgish”},{ id:1,名稱:“Chris”,語言:“西班牙語”},{ id:2,名稱:“Bastian”,語言: “德語”}]
所以我在表格中顯示這個陣列中的語言,并通過它們映射。我不想在這個陣列的第一個物件上顯示第一種語言
父.js
const [language, setLanguage] = useState ([])
useEffect(() => {
axios
.get('api').then((res) => {setLanguage(response.data.languages)})
}, [])
Child.js
return(
{language.map((lang, i) => {
return (
<tr key={"item-" i}>
<td>
<div>
<input
type="text"
value={
lang.language
? lang.language.shift()
: lang.language
}
</div>
</td>
</tr>
))}
)
所以到目前為止我嘗試過的是 shift 方法,它洗掉了陣列的第一項,但它沒有用。發生此錯誤:TypeError: lang.language.shift is not a function
我怎樣才能解決這個問題?
uj5u.com熱心網友回復:
使用索引
{language.map((lang, i) => {
i > 0 && (
return (
......
uj5u.com熱心網友回復:
保存所需資料
shift()呼叫前使用setLanguage
.get('api').then((res) => {
res.data.languages.shift()
setLanguage(response.data.languages)
})
跳過回圈中的第一個
{language.map((lang, i) => {
return (i === 0) ? NULL : (
...
))}
uj5u.com熱心網友回復:
而不是language.map(...僅僅使用language.shift().map(.... shift()方法將修剪陣列的第一個元素并回傳它的副本作為結果。您可以使用該副本進行映射,如前所示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/505648.html
標籤:javascript 反应
下一篇:如何隨機播放串列串列?
