我有一個包含 JSON 物件陣列的 useState 變數,我正在嘗試使用 onChangeText 動態呈現和更新文本欄位,但我對此有點問題。
當我將 console.log(index) 添加到 updateHashtags 時,它說它是未定義的,我無法理解我做錯了什么或可以做些什么來完成這項作業。理論上,索引應該是每個文本欄位的靜態數字。因此,第一個文本欄位將以 hashtags[0] 作為其值,并使用 '0' 作為更新主題標簽狀態的索引。
當我使用:
console.log('index',index);
inside of 時updateHashtags,我得到:
index undefined
這是代碼:
const updateHashtags = (text, index) => {
let ht = hashtags;
ht[index].name = text;
setHashtags(ht);
}
const hashtagElement = (
<>
<Text style={styles.plainText} >Set Your Values:</Text>
<Text style={styles.instructionsText} >This is what other users use to search for you.</Text>
{hashtags.map((e,index) =>
<TextInput
placeholder='value'
key={e.name index}
value={hashtags[index].name}
onChangeText={(text,index) => updateHashtags(text,index)}
style={styles.textInput}
/>
)}
<TouchableOpacity
onPress={() => {
let ht = hashtags;
let newht = {
name: '',
weight: 0,
};
ht[ht.length] = newht;
setHashtags(ht);
}}
>
<Ionicons
name="add-circle-outline"
size={40}
color={'black'}
/>
</TouchableOpacity>
</>
);
uj5u.com熱心網友回復:
也許 onChangeText 函式沒有獲取索引引數。
試試這樣:
// we are getting index from here
{hashtags.map((e,index) =>
<TextInput
placeholder='value'
key={e.name index}
value={hashtags[index].name}
// so no need of taking index from param here
onChangeText={(text) => updateHashtags(text,index)}
style={styles.textInput}
/>
)}
此外,對于您的 updateHashTags 函式,請考慮以下內容:
const updateHashtags = (text, index) => {
// doing it this way ensures your are editing updated version of state
setHashtags((state) => {
let ht = state;
ht[index].name = text;
return ht;
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/471996.html
標籤:javascript 反应 字典 索引 不明确的
下一篇:將嵌套字典的值標準化為[0,1]
