LoginSignup
0
0

More than 1 year has passed since last update.

GraphQL でユーザを選択してデータ取得

Last updated at Posted at 2023-01-08

作成:2023年1月8日
・本記事は次の記事の続きです「React Navigation でプロフ画面を追加
・React Native + Expo + Amplify + NativeBase + React Navigation でアプリ試作してます。

GraphQL でフィルター

現状のコードでは、GraphQL でユーザ3人分(taro,jiro,hanako)のデータをまとめて取ってきて、 data[0] で指定して jiro のデータを表示しています。

image.png

それを、GraphQL のフィルターを使ってログインしたユーザ(user.username)のデータだけ取ってきて表示するようにします。graphqlOperation を使います。

App.js
 async function fetchData1() {
    const opt = {
      filter: {name: {eq: user.username}},
    };
    API.graphql(graphqlOperation(listPeople,opt)).then(values=> {
      setData1(values.data.listPeople.items);
    });
  }

ログイン情報からユーザ情報を取得

App.js に次のコードを追加します(App.jsのgithubリンク:qiita20230108

App.js
function HomeScreen() {
...
  const { user, signOut } = useAuthenticator((context) => [context.user])
...
            {`Welcome, ${user.username} !!!`}
...
function ProfileScreen() {
...
    const opt = {
      filter: {name: {eq: user.username}},
    };

taro でログインすると taro の情報が表示される様になりました。

jiro でログインすると jiro の情報が表示される様になりました。

以上です。

参考
Access Authenticated User

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0