首页 > 解决方案 > 如何从函数内部的数据中正确返回值

问题描述

我是 javascript 新手,并开始从中学习惊人的东西。作为下面的代码,我怎样才能返回indexinside的值getData().then(data => {getData函数具有 json 响应值。

subPatternStart() {
  getData().then(data => {
    var patternStart = 1525750500000;
    var index = 0;

    for (var i = 0; i < data.length; i++) {
      if ( patternStart >= data[i].time && patternStart < data[i+1].time ) {
        //...somecode
      }
    }
    console.log("Index:" , index);
  })
}

我想要实现的是,当我调用这个函数时,我应该只获取 index 的值,在这种情况下,控制台日志值相当于1.

我的渲染方法中有这个。

render() {
  index={this.subPatternStart()}
}

在这个简单的代码中,它返回渲染方法中的确切值,我想做这样的事情。

subPatternStart() {
  var patternStart = 1;
  return patternStart;
}

标签: javascriptreactjsfunctionreturn

解决方案


您应该使用从中获得的值设置组件的状态getData。然后 React 可以自行更新并渲染页面。例如

import React from 'react';

class App extends React.Component {

  constructor(props) {
    super(props);

    this.state = {
      index: 0
    }
  }

  subPatternStart() {
    getData().then(data => {
      var patternStart = 1525750500000;
      var index = 0;

      for (var i = 0; i < data.length; i++) {
        if (patternStart >= data[i].time && patternStart < data[i + 1].time) {
          //...somecode
        }
      }
      this.setState({
        index: index
      });
    })
  }
  render() {
    index =  this.state.index
  }
}

推荐阅读