javascript - await 函数返回一个 promise,即使条件为 false 也返回 true | react 功能组件

标签 javascript reactjs async-await promise react-functional-component

在我的 JSX 文件中,我有一个这样的函数。

async isPresent () {
    const res = await AsyncFunction();
    if (res) {
        return true;
    }
    return false;
}

然后在条件渲染中使用它作为

{  this.isPresent() &&  <div> Content </div> }

但这总是返回 true。

我该如何解决?

最佳答案

你可以这样做:

const [isPresentResult, setIsPresentResult] = useState(false);

useEffect(() => {
  this.isPresent().then(res => setIsPresentResult(res))
}, [])

// ...
{ isPresentResult &&  <div> Content </div> }

使用类组件:

class ExampleComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = { isPresentResult: false };
  }

  componentWillMount = () => {
    this.isPresent().then((isPresentResult) => 
      this.setState({ isPresentResult }));
  };

  async isPresent() {
    const res = await AsyncFunction();
    return !!res;
  }

  render() {
    return {this.state.isPresentResult && <div> Content </div>};
  }
}

关于javascript - await 函数返回一个 promise,即使条件为 false 也返回 true | react 功能组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72343916/

相关文章:

javascript - 为什么这不能正确转换?

reactjs - 在 React 中进行存储时 composeWithDevTools 'expected 1 argument, but got 2 error'

c# - 异步线程体循环,它只是工作,但如何?

c# - 从 WCF 服务调用异步方法

循环内的 JavaScript 闭包 – 简单的实际示例

javascript - 正确添加 "use strict";在这段代码中

javascript - 如果超过逗号(,),如何删除逗号

javascript - react-redux react-router 商店在 Prop 中不可用

reactjs - 如何使用 Reactstrap 在 DropdownItem 中添加链接?

c# - 处理 CancellationTokenRegistration