如何将条件循环输出传递给reactjs中的变量

How to pass if condition loop output to a variable in reactjs

我需要帮助来解决这个问题

let someVar
render(
    {
        this.props.someData.map((items) =>
            items.someotherData.map((item) =>
                (item.data1 > 5 && item.data2 == "more") ? classNames({ "classname1": true })
                    : (item.data1 > 5 && item.data2 == "less") ? classNames({ "classname2": true })
                        : classNames({ "classname3": true })
            ))
    }

    <div className = { someVar } ></div>
   )

我需要将 if 循环的输出传递给变量 我尝试了很多方法。没有任何效果。请给出解决方案

render() {
    let someVar

    this.props.someData.forEach(items =>
        items.someotherData.forEach(item =>
            item.data1 > 5 && item.data2 == 'more'
                ? someVar = 'classname1'
                : item.data1 > 5 && item.data2 == 'less'
                    ? someVar = 'classname2'
                    : someVar = 'classname3'
        )
    )

    return <div className={someVar}></div>
}

我真的不明白你想做什么。你是在调用一些带有 class 名称的函数吗?不过,这是我为您解决问题的最佳尝试。

首先我们创建变量, 然后我们进行数据处理。如果你没有 returning 任何东西,你不应该使用 map 而应该使用 forEach 。您还覆盖了每个项目的变量(这是首选行为吗?)。

然后我们实际上return React 部分代码。渲染函数总是需要 return JSX 或 null。在 JSX 中,我们可以在 className 中使用 someVar。 className 的最终值需要是一个字符串。这就是我们将字符串放入 someVar 的原因。