首页 > 其他分享 >GitHubLogin组件

GitHubLogin组件

时间:2022-09-01 21:56:24浏览次数:38  
标签:return GitHubLogin 组件 const login useEffect data

import React, { useState } from "react";
import { loadJSON, saveJSON } from "../utils/index";
import { useEffect } from "react";

const GitHubLogin = ({ login }: { login: string }) => {
  const [data, setData] = useState(loadJSON(`user:${login}`));

  useEffect(() => {
    if (!data) return;
    if (data.login === login) return;
    const { name, avatar_url, location } = data;
    saveJSON(`user:${login}`, {
      name,
      login,
      avatar_url,
      location,
    });
  }, [data]);

  useEffect(() => {
    if (!login) return;
    if (data && data.login === login) return;
    fetch(`http://api.github.com/user/${login}`)
      .then((response) => response.json())
      .then(setData)
      .catch(console.error);
  }, [login]);

  if (data) {
    return <pre>{JSON.stringify(data, null, 2)}</pre>;
  }
  
  return null;
};
export default GitHubLogin;

这个组件详细解释了获取用户登录信息与存储的过程,对于获取而言,如果没有login怎么办?有了之后怎么办.对与存储没有怎么办,有了之后怎么办.对于展示,没有什么也不展示,有了就展示所获取的信息

标签:return,GitHubLogin,组件,const,login,useEffect,data
From: https://www.cnblogs.com/xxxccczzz/p/16647940.html

相关文章

  • 8.引入Nacos组件----配置功能
    1.引入Nacos作为配置中心的相关依赖在webshop-common项目的pom.xml文件下,导入Nacos作为配置中心的相关依赖<!--nacos配置中心--><dependency><groupId>com.ali......
  • 7.引入Fegin组件----远程调用
    1.引入Fegin依赖,提供远程调用功能<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dep......
  • 6.引入Nacos组件
    1.Docker安装Nacos拉取镜像、创建目录及配置文件dockerpullnacos/nacos-server:latest#拉取镜像mkdir-p/data/nacos/logs/data/nacos/init.d#创......
  • ant-design日期组件DatePicker国际化失效
    问题描述:在vite+react+ant design项目中,使用DatePicker组件时,发现该组件的国际化失效了。如下图: 注释:项目入口文件已有配置国际化,如下: 分析:antdesign官网上已有......
  • UE4中ProceduralMesh组件应用动态裁切Mesh
     Vertices即为顶点信息(顶点坐标为本地坐标,原点即为Actor根组件)。构建矩形需要4个顶点即可Triangles三角形信息。使用顶点进行三角形拼接,顺序不要乱,使用数组下标。第一......
  • 【Vue项目】尚品汇(四)Search组件开发
    Search模块开发分析:1)编写静态页面2)编写api3)编写vuex三大件4)组件获取仓库数据,并进行动态展示1SearchSelector1编写apiexportconstreqGetSearchInfo=(params={}......
  • 21 forms组件-参数initial&instance应用
    简单来讲:如果你想传入前端的页面中附带值,那么在实例化forms中:form=SecondModelForm(data=request.POST,instance=permission_obj)returnrender(request,'rbac/chan......
  • vue3 + NaiveUI Modal组件点击右上角x关闭不了弹窗的问题
    不要使用v-modle:show='props.show'的方式。因为使用v-modle后,会警告不能直接修改父组件的值,只是可读的应该采用::show='props.show'@update:show='changeShow'配合@......
  • 高颜值,类似Fliqlo的翻页时钟-BdTab新标签页插件组件
    起因:很多用户在使用BdTab插件时,反馈说希望添加一个时钟的功能,而BdTab又是组件模块化的插件,于是在空余时间就用html+js+css写了一款高颜值的分页时钟源码如下:需要其......
  • element-ui table组件 el-table-column宽度和对应位置总结 width="100"
    element-uitable组件el-table-column宽度和对应位置总结以三列为例1.如果都不设置width则是平分宽度<el-table-columnprop="name"label="礼品名称"></el-table-c......