亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React Native Hooks - 動態地創建一個引用數組

React Native Hooks - 動態地創建一個引用數組

哆啦的時光機 2023-03-03 10:44:00
介紹我有一組數據,其中包含具有唯一 ID 的對象。我正在嘗試創建盡可能多的引用。例如,如果數組有 4 個元素,那么我將創建 4 個引用。每個引用都必須包含在一個數組中,而且我需要將它與對象的唯一 ID 相關聯。這是我在“偽代碼”中嘗試做的事情:偽代碼 data = [{id: "10i3298yfrcd", ...}, {id: "y48hfeucldnjs", ...}]  references = data.map(({id}) => useRef(null))問題我不知道如何將每個創建的引用與其各自的對象 ID 相關聯(只是為了訪問引用,例如使用字母數字索引數組或類似的東西)......另外,以這種方式創建引用時出現錯誤:React 檢測到 %s 調用的 Hooks 的順序發生了變化。如果不修復,這將導致錯誤和錯誤。有關更多信息,請閱讀 Hooks 規則:https://reactjs.org/docs/hooks-rules.html所以我想這不是動態創建引用的有效形式。任何想法如何做到這一點?謝謝。
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

這是根據 data.lenght 創建 useRef 的方法


import { useEffect, useRef, useState } from react;


const ArrayInputs = () => {

    const inputRef = useRef([]);

    const [data, setData] = useState([]);

    

    useEffect( () => {

        let data = ['Name', 'Age', 'Gender'];

        inputRef.current = new Array(data.length);

        setData(data);

    }, []);

    

    useEffect( () => {

        //Example of using inputRef

        if(data.length !== 0) {

            inputRef.current[data.length - 1].focus();

        }

    }, [data]);

    

    return(

        <View>

            {data.map( (element, i) => <TextInput ref = {el => inputRef.current[i] = el} />)}

        </View>

    

    );


}


查看完整回答
反對 回復 2023-03-03
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號