javascript - 无法获取数据并且 React 没有给出任何错误消息

标签 javascript reactjs ecmascript-6

我有这个组件:

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { compose } from 'redux';
import { translate } from 'react-i18next';

const API = `http://accountmanagement.ng.bluemix.net/v1/accounts/${accountGuid}/traits`;

class GetMFAValidation extends Component {
  constructor(props) {
    super(props);
    this.state = { data: '' };
  }

  render() {
    return (
      <div>
        <p>HOLA, I AM ${accountGuid}</p>
      </div>
    );
  }

  componentDidMount() {
    fetch(API).then(response => response.json()).then(data => {
        console.log('data -->', data);
        this.setState({ data });
      });
  }
}

GetMFAValidation.propTypes = {
  accountGuid: PropTypes.string.isRequired,
};

export default compose(
  connect(
    store => ({ accountGuid: store.global.accountGuid }),
    translate(),
  ),
)(GetMFAValidation);

我在另一个组件中调用它,例如:

import GetMFAValidation from "../path"<GetMFAValidation />

应用程序崩溃,但我没有收到任何错误。

最佳答案

您的API字符串中有一个变量:

const API = `http://accountmanagement.ng.bluemix.net/v1/accounts/${accountGuid}/traits`;

...但是这里无法访问accountGuid

您可以使用函数代替:

const getAPIUrl = (accountGuid) => 
  `http://accountmanagement.ng.bluemix.net/v1/accounts/${accountGuid}/traits`;

然后在使用时从 props 中传入 accountGuid :

componentDidMount() {
  const APIUrl = getAPIUrl(this.props.accountGuid)
  fetch(APIUrl).then(response => response.json()).then(data => {
    console.log('data -->', data);
    this.setState({ data });
  });
}

我希望这会有所帮助。

关于javascript - 无法获取数据并且 React 没有给出任何错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314789/

相关文章:

reactjs - Material UI抽屉选择如何走线?

javascript - JS - 在对象数组中使用 Set()

javascript - 将 Fetch API 与 Promise.all 结合使用

javascript - CSS字体大小以保持相同的字宽

javascript - Google Analytics 'not set' 值作为浏览器版本?

javascript - 不会在手机上显示图像

javascript - 卸载时关闭浏览器窗口

javascript - ReactJs:如何在渲染组件时传递初始状态?

javascript - 在 React 中通过 ref (或 key)访问无状态组件

reactjs - 在 React Router v4 中为路由添加前缀