首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用RTK查询记录和显示部分数据?

如何用RTK查询记录和显示部分数据?
EN

Stack Overflow用户
提问于 2022-03-11 12:57:01
回答 1查看 411关注 0票数 0

react native typescriptexpo的帮助下,我正在创建一个移动应用程序。我试图从API https://pokeapi.co/api/v2/pokemon/snorlax/获取部分数据。例如,从API中,我只尝试获取名称或其他任何东西,只是获取一些部分数据。

usersApi.tsx

代码语言:javascript
复制
// Need to use the React-specific entry point to allow generating React hooks
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'

// Define a service using a base URL and expected endpoints
export const pokemonApi = createApi({
  baseQuery: fetchBaseQuery({
    baseUrl: 'https://pokeapi.co/api/v2/',
    method: 'GET'
   }),
  endpoints: (builder) => ({
    getPokemonByName: builder.query({
      query: (name: string) => `pokemon/${name}`,
    }),
  }),
})

export const { useGetPokemonByNameQuery } = pokemonApi

ContactScreen.tsx

代码语言:javascript
复制
import React from 'react';
import {
  Image,
  ImageBackground,
  StyleSheet,
  TouchableOpacity,
} from 'react-native';

import { View, Text } from '@components/Themed';
import { useFonts } from '@use-expo/font';
import * as Linking from 'expo-linking';
import AppLoading from 'expo-app-loading';
import { useGetPokemonByNameQuery } from '../apiCalls/usersApi';

const ContactScreen = ({name}: {name: string}) => {
  const [isLoaded] = useFonts({
    'Poppins-Medium': require('../../assets/fonts/Poppins-Medium.otf'),
    'Poppins-Regular': require('../../assets/fonts/Poppins-Regular.otf')
  });

  const { data } = useGetPokemonByNameQuery(name)
  
  console.log(data)

[...]

App.tsx

代码语言:javascript
复制
[...]

export default function App() {
  const isLoadingComplete = useCachedResources();
  const colorScheme = useColorScheme();

  if (!isLoadingComplete) {
    return null;
  } else {
    return (
      <Provider store={store}>
        <SafeAreaProvider>
          <I18n />
          <ContactScreen name={'snorlax'}/>
          <StatusBar />
        </SafeAreaProvider>
      </Provider>
    );
  }
}

ContactScreen.tsx,我得到的数据,但很多垃圾,我不需要。类似于console.log(data.species.name) doesn't work and getting me an error TypeError data是未定义的WHICH onlyconsole.log(Data)‘则不是。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-11 14:15:23

您可能正在访问数据属性,而不检查数据是否已被获取。

代码语言:javascript
复制
if (data && data.species) {
  console.log(data.species.name)
}

代码语言:javascript
复制
console.log(data?.species?.name)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71438869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档