Как сопоставить некоторые данные с данными, извлеченными из API, прежде чем показывать их на экране? - PullRequest
0 голосов
/ 15 апреля 2020

Я новичок в React Native. Я пытаюсь создать собственное приложение, чтобы опробовать разные вещи, которые я выучил, а также познакомиться с новыми вещами, и одна такая вещь, с которой я столкнулся и которая доставляет мне трудности, заключается в следующем: у меня есть API который дает мне определенные данные о предмете. Свойства элемента перечислены в API как «sizeofitem», «nameofitem» или «itemacategory». Теперь есть несколько элементов для разных элементов, и не все свойства присутствуют в каждом элементе. Я пытался добиться того, чтобы каким-то образом отобразить эти свойства следующим образом: если, скажем, «sizeofitem» должно стать «Size of Item», то «nameofitem» должно стать «Name of Item». Теперь эти свойства отличаются от всех элементов, поэтому, например, sizeofitem может быть в одном подробном списке элементов, но не может быть в другом, но у меня есть все свойства, которые могут быть там. Может кто-нибудь помочь мне, как это сделать?

До сих пор у меня есть следующее:

const [itemDtl , setItemDtl] = useState([]);

const getItemInfo = async (id) => {
        try{
            const response = await api.get(`myAPI/${id}`);
            setItemDtl(response.data.obj.itemutils);

        }catch(err){
            console.log(err);
        }
    }
let arr = [];
for(let i in itemDtl){

   arr.push(itemDtl[i].util_type);
}
console.log(arr);

useEffect(() => {
    getItemInfo(id);
})

Массив arr имеет любые свойства, перечисленные для элемента в API, т.е. [sizeofitem, nameofitem и т. Д.].

Я хочу, чтобы массив имел [Размер элемента, Имя элемента и т. Д.].

В целом, просто, чтобы подвести итог, я хочу переименовать список свойств, которые могут быть там для когда какое-либо свойство появляется, оно сохраняется в массиве с отображенной строкой, которую я дал, например, если элемент имеет «sizeofitem: 50», я хочу, чтобы он был сохранен как «Размер элемента», чтобы я мог показать, что на экране. Всего существует 5 свойств, которые могут существовать для элемента, поэтому я могу кодировать его где-нибудь, например, sizeofitem : 'Size Of Item', чтобы, когда свойство sizeofitem показывалось сверху, я мог использовать это и отображать на экране Размер элемента. .

1 Ответ

0 голосов
/ 15 апреля 2020

попробуйте это:

const [itemDtl , setItemDtl] = useState([]);

const getItemInfo = async (id) => {
        try{
            const response = await api.get(`myAPI/${id}`);
            let arr = [];
            for(let i in itemDtl){
              arr.push(itemDtl[i].util_type);
            }
            setItemDtl(arr);

        }catch(err){
            console.log(err);
        }
    }


useEffect(() => {
    getItemInfo(id);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...