javascript - 获取数据后设置状态的 react 问题

标签 javascript reactjs react-native

我正在创建一个表单,我想在初始加载时加载数据。

我已经设置了 Mount 来调用我的函数 fetchClaims。我收到结果,并且可以控制台记录它。我不能做的是用它更新我的状态,以便我可以在我的表单中使用它。

componentDidMount() {
  this.onInit(this.props);
}

onInit = props =>
  props
    .fetchClaims()
    .then(results => console.log('results = ' + JSON.stringify(results)))
    .then(claims => this.setState({ results }))
    .then(results =>
      console.log('results state = ' + JSON.stringify(this.state)),
    );

结果数据如下所示

results = {
  type: 'CLAIMS_FETCHED',
  claims: [
    {
      _id: '5b0d5b7f035a00f06003e6b8',
      claimID: '123456',
      claimDate: '2018-05-14T00:00:00.000Z',
      carrier: 'BCBS NJ',
    },
  ],
};

状态看起来像

state = {
  data: { email: '' },
  loading: false,
  errors: {},
  fromdate: '',
  todate: '',
  claims: {},
  results: {},
};

我想将 Claims 数组填充到 state 中的声明中,然后对其进行映射。

最佳答案

尝试在第一个控制台日志之后返回值,并在设置状态时修复参数名称。

onInit = props => props.fetchClaims()
    .then(results => {
        console.log("results = " + JSON.stringify(results));
        return results;
    })
    .then(results => this.setState({ claims: results.claims }))
    .then(() => console.log("results state = " + JSON.stringify(this.state)));

关于javascript - 获取数据后设置状态的 react 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593698/

相关文章:

javascript - 将 React 组件转换为单个 js 文件以将其与空白 html 集成

android - react-native 错误找不到变量 : styles

javascript - 将匿名函数传递给 onPanResponderMove

android - 如何获取我所在的页面的编号? ViewPager 响应 native

javascript - Ember 数据 : Get a Model in the Console

javascript - 如何修改react扩展类?

reactjs - Relay QueryRenderer 不从查询返回预期的 props

javascript - 我的 AJAX 只触发一次,

javascript - 回调函数——javascript

javascript - 函数声明之间的区别