如何在反應中創建對像數組?

八月

我是反應世界的新手。我正在嘗試編寫一個代碼,當按下圖標時,圖像被添加到收藏夾類別中,然後在收藏夾頁面上應該顯示圖像。我有一個問題,不知道如何動態地從圖像中獲取價值並將它們添加到最喜歡的類別而不會失去以前的價值。我認為我寫狀態的方式似乎一團糟。我用打字稿寫作並使用材料 UI

搜索結果

const [images, setImages] = useState([]);
const [favImage, setFavImage] = useState<ImageProps>({
    id: '',
    farm: 0,
    server: '',
    secret: '',
    title: ''
});

const handleFavImage = ({ farm, server, id, secret, title }: ImageProps): void => {
    setFavImage({ id, farm, server, secret, title });
};

圖像模態

const handleFavourite = (): void => {
    setIcon(!icon);
    if (!icon === true && handleFavImage !== undefined) {
        handleFavImage({ farm, server, id, secret, title });
    }
};
普拉奈奈瓦爾

使用圖像 ID 作為參考。

使用 redux 存儲/本地存儲來存儲最喜歡的圖像 Id。

假設您在這裡擁有所有圖像:

const [images, setImages] = useState([]);

單擊圖標時,傳遞所選圖像的圖像 ID 並遍歷images數組以查找圖像道具。

只是為了讓您了解如何使用組件狀態數組來執行此操作:

讓我們創建一個狀態來存儲最喜歡的圖像 id

const [favImages, setFavImages] = useState([]);

點擊時看起來像這樣

const handleOnClick = (imageId) => {
    var arr = [...favImages]; //copy array by value
    arr.push(imageId)
    setFavImages(arr) //override state with new values
}

現在該favImages數組具有最喜歡的圖像 ID 列表。

現在,favImages在您的favourite page組件中使用它。

let favImageProps = props.images.filter(image => props.favImages.indexOf(image.id) !== -1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根據屬性值創建新的對像數組

根據兩個對像數組之間的比較創建新數組

如何在反應中將函數和對像傳輸到函數組件

如何在顫振中創建帶有圖像參數的自定義對話

Bicep - 如何通過每次迭代創建 2 個或更多對象的循環創建對像數組

在反應中過濾對像數組不起作用

如何從兩個不同長度的數組javascript創建對像數組

如何通過在js中使用reduce返回數組中的對象來創建嵌套對象

如何渲染數組中的對象總數反應

使用 jq 從 Bash 數組創建對像數組

如何創建按鈕反應組件?

如何從動態值創建對像數組?

如何在scala的可變數組中創建一個不可變數組?

如何基於字符串數組創建對像類型/接口

如何創建圖像的數據集數組?

根據數組對像數據創建一個新數組

如何在存儲桶上的 gsutil cp 期間保留/重新創建對像元數據

在react js中從api調用創建新的對像數組

如何使用 Lodash 遍歷具有多個元素的對像數組以創建僅包含重複項的新數組

使用 each 函數創建新的對像數組

使用 React 基於嵌套值創建新的對像數組

如何從數組創建對像數組:javascript

反應如何在嵌套數據對像中呈現動態圖像

如何創建具有多個值的 JSON 對像數組?

如何從現有的對像數組創建嵌套對象的新數組

如何在可組合函數中正確創建 ViewModel 對象?

如何在 JavaScript 中使用對象值創建數組的新對象

我如何在反應中將數組轉換為數組對象?

我如何通過嵌套對像數組創建具有嵌套對像數組的對象