javascript - react 多重加载状态

标签 javascript reactjs

我尝试在从 API 获取数据时为每张卡添加加载图标。还有其他方法可以保持干燥吗? ...以避免重复自己?

{isLoading ? (<Loader />) : (
    <div className="module card">{sales_numbers}</div>
)}

{isLoading ? (<Loader />) : (
    <div className="module card">{accounts_numbers}</div>
)}

{isLoading ? (<Loader />) : (
    <div className="module card">{users_numbers}</div>
)}

最佳答案

您可以将数据与数组一起使用,并调用 .map() 来显示值。您可以将这些项目存储在 useState() 中函数组件或类组件中的 this.state 的钩子(Hook)。

如果您有函数组件,请尝试以下操作:

const [values] = useState([sales_numbers, account_numbers, users_numbers]);

return <>
    {
        values.map(e => isLoading ?
                        <Loader /> :
                        <div className="module card">{e}</div>
        )
    }
</>

在类组件中,您需要像这样存储在 this.state 中:

constructor(props) {
    super(props);

    this.state = {
        values: [sales_numbers, account_numbers, users_numbers]
    }
}

render() {
    return <>
        {
            this.state.values.map(e => isLoading ?
                                       <Loader /> :
                                       <div className="module card">{e}</div>
            )
        }
    </>
}

希望这会有所帮助!

关于javascript - react 多重加载状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60957132/

相关文章:

reactjs - React/Redux - 调度不更新 View

javascript - 在别处单击时关闭 Material UI 组件

javascript - Mongoose 获取意外的函数表达式

javascript - 使用多个键再次减少数据

reactjs - Redux-Saga 中的状态变化

javascript - ReactJS - this.functionname 不是函数

javascript - 获取 POST 输入错误的意外结束

javascript - 自定义 JS 对象无法正确解析

javascript - 我应该如何在 JavaScript 中存储新创建的元素?

javascript - 如何更改 css 中的 td、tr 值?