javascript - 从 react 功能组件返回变量

标签 javascript reactjs function

我有一个 react 组件:

class ModulesListing extends React.Component {
  render(){
    const module = this.props.module;
    getModuleCode(module){
       var moduleCode = 0;
       // Do relevant calls and get moduleCode
       return moduleCode;
    }
    return (
      //Info to display
    );
  }
}

这里,我需要在 return() 中获取 moduleCode 的值并将其分配给一个变量以进行进一步的处理。当我指定为时,

var moduleCode = this.getModuleCode(module);

它返回一个 undefined object 。从函数返回值的正确方法是什么?

最佳答案

您可以在 componentDidMount 中获取代码并将其存储在状态中。

示例

function doCall() {
  return new Promise(resolve => setTimeout(() => resolve("code"), 1000));
}

class ModulesListing extends React.Component {
  state = { code: null };

  componentDidMount() {
    this.getModuleCode();
  }

  getModuleCode = module => {
    doCall(this.props.module).then(code => {
      this.setState({ code });
    });
  };

  render() {
    const { code } = this.state;

    if (code === null) {
      return null;
    }

    return <div> {code} </div>;
  }
}

ReactDOM.render(<ModulesListing />, document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>

关于javascript - 从 react 功能组件返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51361714/

相关文章:

javascript - 调用 Coldfusion 组件函数的 jQuery post 方法不起作用

javascript - 通过网站中的按钮使用浏览器搜索 (Ctrl+F)?

javascript - 为什么箭头函数在渲染之间没有被内存?

javascript:为什么返回值可能为假

python - 如何在 Python 中构建这样一个函数式编程工具?

javascript - 使用 Bower 编程 API 强制最新

javascript - 如何使用正则表达式查找文件中的所有 Handlebars 部分

javascript - react : setState does not make results just as expected(not working?)

javascript - 使用 webpack-dev-server 读取 webpack Assets json

C++ - 将函数链接到触发器的有效且高效的方法