Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使React组件等待http调用返回

如何使React组件等待http调用返回
EN

Stack Overflow用户
提问于 2018-08-25 23:52:13
回答 1查看 1K关注 0票数 1

我正在学习react-redux-saga,我正在使用saga进行HTTP调用。我使用mapStateToProps连接结果,但是,我的react组件在http调用返回之前出错。在我的return语句的第一行,我得到了一些类似于“找不到未定义的名字”的东西。

如何让我的组件等待?在进行this.props.user调用的瞬间,http将是未定义的,但调用永远不会返回,因为我的应用程序由于运行时错误而终止。

下面是我正在使用的代码:

代码语言:javascript
运行
AI代码解释
复制
class ImageGenerator extends Component {
    constructor(props) {
        super(props);
    }
    render() {
        let user = this.props.image;
        console.log("USer", this.props.image);
        return (
            <div>
                Name: {user.name.first} {user.name.last}
                Phone: {user.phone}
                Date of Birth: {user.dob.date} <br/>
                Age: {user.dob.age} <br/>
                Email: {user.dob} <br />
                Gender: {user.gender} <br/>
                City: {user.location.city } <br />
                State: {user.location.State } <br />
                Street: {user.location.street } <br />
                <img src={user.picture.medium} alt="No Image Found"/>
                {/* <button onClick={getNewImage}>New Image</button> */}
                <button>Add to Favorites</button> 
           </div>
        )
    }
}

const mapStateToProps = state => {
    console.log("State", state);
    return { image: state.image };
};

const mapDispatchToProps = dispatch => {
    return {
        getNewImage: () =>
            dispatch({
                type: NEXT_IMAGE
            })
    }
};

export default connect(mapStateToProps, mapDispatchToProps)(ImageGenerator);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-26 00:35:54

在这种情况下,您可以使用&&运算符/三元运算符来检查对象是否有数据或对象是否未定义。这些天来,大多数React问题都有这些问题,但解决方案非常简单。

为了更好地理解,请查看下面的更新代码。

代码语言:javascript
运行
AI代码解释
复制
  class ImageGenerator extends Component {
        constructor(props) {
            super(props);
        }
       render() {
            const { user }= this.props;
            console.log("USer", this.props.image);
            return (
                 <div>
                      {user && user != undefined && (Name: {user.name.first} {user.name.last}
                     Phone: {user.phone}
                    Date of Birth: {user.dob.date} <br/>
                    Age: {user.dob.age} <br/>
                   Email: {user.dob} <br />
                   Gender: {user.gender} <br/>
                   City: {user.location.city } <br />
                   State: {user.location.State } <br />
                  Street: {user.location.street } <br />
                 <img src={user.picture.medium} alt="No Image Found"/>)}
                  {/* <button onClick={getNewImage}>New Image</button> */}
                 <button>Add to Favorites</button> 
              </div>
             )
        }
    }

     const mapStateToProps = state => {
          console.log("State", state);
            return { user: state.image };
     };

   const mapDispatchToProps = dispatch => {
         return {
             getNewImage: () =>
                dispatch({
                     type: NEXT_IMAGE
                })
             }
         };

   export default connect(mapStateToProps, mapDispatchToProps)(ImageGenerator);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52022146

复制
相关文章
JAVA如何调用对方http接口得到返回数据
大家好,又见面了,我是你们的朋友全栈君。 https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=”手机号码” jsp代码: <form a
全栈程序员站长
2022/08/25
9640
React Native调用原生组件
在React Native开发过程中,有时候我们可能需要访问平台的API,但react Native还没有相应的实现,或者是React Native还不支持一些原生的属性,我们需要调用原生代码来实现,或者是我们需要复用一些原来的Java代码,这个时候我们就需要创建一个原生模块来自己实现对我们需要功能的封装。 相关文档可以参照官方的介绍。 实例 下面我们就通过实现一个自定义模块,来熟悉编写原生模块需要用的一些知识。该模块主要实现调用一些Android原生的功能,比如弹Toast,启动Activity等。 实
xiangzhihong
2018/02/06
1.7K0
React Native调用原生组件
在React Native开发过程中,有时候我们可能需要访问平台的API,但react Native还没有相应的实现,或者是React Native还不支持一些原生的属性,我们需要调用原生代码来实现,或者是我们需要复用一些原来的Java代码,这个时候我们就需要创建一个原生模块来自己实现对我们需要功能的封装。 相关文档可以参照官方的介绍。 #实例 下面我们就通过实现一个自定义模块,来熟悉编写原生模块需要用的一些知识。该模块主要实现调用一些Android原生的功能,比如弹Toast,启动Activity等。
xiangzhihong
2018/01/26
1.6K0
React父组件调用子组件的方法
React组件化开发中子组件可以通过传递变量或者父组件的方法来实现和父组件的通信或者调用函数传值,但是父组件如何调用子组件的方法呢?很多介绍Hooks的文章并没有讲到useImperativeHandle,我以使用React18+TypeScript开发的项目为例,组件使用Hooks。以下是我精简过后的代码。
用户6256742
2022/07/06
5.8K0
React Native调用原生UI组件
在React Native 中,其已经将几个常用的原生组件进行了封装,但是并不是所有系统的原始组件都被封装了,因此有时候我们不得不自己动手封装一下,从而能够使用那些React Native没有为我们封装的原生组件。为了方便讲解,我们选择第一个第三方库kenburnsview来讲解,kenburnsview是一个可以让图片在在页面移动或者放大缩小的库。 Android原生组件封装 1,继承SimpleViewManager,返回UI组件实例 首先,需要继承 SimpleViewManager 这个泛型类,
xiangzhihong
2018/02/06
1.6K0
react native 调用原生UI组件
在React Native开发过程中,有时我们想要使用原生的一个UI组件或者是js比较难以实现的功能时,我们可以在react Naitve应用程序中封装和植入已有的原生组件。 本文我们实现一个VideoView的本地调用。 React Native并没有给我们提供VideoView这个组件,那我们要播放视频的话,有两种方法:一种是借助WebView,一种就是使用原生的播放器。 Java端实现 新建VideoViewManager类,并继承SimpleViewManager,SimpleViewManag
xiangzhihong
2018/02/06
7.4K1
react native 调用原生UI组件
React技巧之组件中返回多个元素
原文链接:https://bobbyhadz.com/blog/react-return-multiple-elements[1]
chuckQu
2022/08/19
1.1K0
React技巧之组件中返回多个元素
React技巧之调用子组件函数
原文链接:https://bobbyhadz.com/blog/react-call-function-in-child-component[1]
chuckQu
2022/08/19
2K0
React技巧之调用子组件函数
React :(类、函数)子组件调用父组件的方法
子组件中使用传过来的cancelCreateFile【this.props.cancelCreateFile】,就可以在子组件中调用
江一铭
2022/09/23
5.3K0
React :(类、函数)子组件调用父组件的方法
vue 父组件调用子组件_react父组件向子组件传值
1.直接在子组件中通过“this.$parent.event”来调用父组件的方法。
全栈程序员站长
2022/11/15
1.9K0
[TDD] 如何测试 React 异步组件?
本文承接上文 如何测试驱动开发 React 组件?,这次我将继续使用 @testing-library/react 来测试我们的 React 应用,并简要简要说明如何测试异步组件。
狂奔滴小马
2021/12/31
3.3K0
[TDD] 如何测试 React 异步组件?
React组件应该如何封装?
相反,紧耦合的系统会失去上面描述的好处。主要缺点是很难修改高度依赖于其他组件的组件。即使是一处修改,也可能导致一系列的依赖组件需要修改。
胡哥有话说
2019/08/30
2.1K0
React 如何实例化组件?
源码在 ReactFiberClassComponent.new.js 文件下,并在函数 constructClassInstance 中 做实例‍化 。
前端西瓜哥
2022/12/21
1.3K0
React 如何实例化组件?
vue父组件调用子组件方法返回值_vue子组件修改父组件值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
1.5K0
如何测试驱动开发 React 组件?
TDD(Test-driven development),就是测试驱动开发,是敏捷开发中的一项核心实践和技术,也是一种软件设计方法论。
狂奔滴小马
2021/12/01
2.2K0
如何测试驱动开发 React 组件?
如何优雅的设计 React 组件
作者:晓冬 本文原创,转载请注明作者及出处 如今的 Web 前端已被 React、Vue 和 Angular 三分天下,一统江山十几年的 jQuery 显然已经很难满足现在的开发模式。那么,为什么
iKcamp
2018/01/04
5.3K0
如何测试驱动开发 React 组件?
TDD(Test-driven development),就是测试驱动开发,是敏捷开发中的一项核心实践和技术,也是一种软件设计方法论。
狂奔滴小马
2022/03/29
2.2K0
如何测试驱动开发 React 组件?
如何优雅的设计 React 组件
如今的 Web 前端已被 React、Vue 和 Angular 三分天下,一统江山十几年的 jQuery 显然已经很难满足现在的开发模式。那么,为什么大家会觉得 jQuery “过时了”呢?一来,文章《No JQuery! 原生 JavaScript 操作 DOM》就直截了当的告诉你,现在用原生 JavaScript 可以非常方便的操作 DOM 了。其次,jQuery 的便利性是建立在有一个基础 DOM 结构的前提下的,看上去是符合了样式、行为和结构分离,但其实 DOM 结构和 JavaScript 的代码逻辑是耦合的,你的开发思路会不断的在 DOM 结构和 JavaScript 之间来回切换。
iKcamp
2018/07/31
4K0
JS如何返回异步调用的结果?
这个问题作者认为是所有从后端转向前端开发的程序员,都会遇到的第一问题。JS前端编程与后端编程最大的不同,就是它的异步机制,同时这也是它的核心机制。
LIYI
2023/03/06
5.6K0
JS如何返回异步调用的结果?
React篇(020)-如何在 React 中创建组件?
答案:有两种可行的方法来创建一个组件: 1. Function Components: 这是创建组件最简单的方式。这些是纯 JavaScript 函数,接受 props 对象作为第一个参数并返回 React 元素:
齐丶先丶森
2022/05/12
2.9K0

相似问题

使http请求等待返回其响应

121

异步呈现React组件(等待数据返回)

12

等待请求返回React中的组件

127

如何返回react组件中的http错误?

10

调用返回react组件函数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文