javascript - react : Uncaught Error: Objects are not valid as a React child

标签 javascript reactjs

我不太清楚为什么会收到此错误。

react.js:20149 Uncaught Error: Objects are not valid as a React child (found: object with keys {showThreads}). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of `CreateRow`.(…)

下面是代码:

var ShowThreads = React.createClass({

    render: function() {
        return(
            <table>
                <tbody>
                    {this.props.thread}
                </tbody>
            </table>
        )
    }
});

var CreateRow = React.createClass({
    getInitialState: function() {
        return {
            threadVisible: false,
            threads: ['lorem', 'ipsum', 'imperator', 'quad'],
        }
    },

    onClick: function(){
        // this.getThreads()
        this.setState({threadVisible: !this.state.threadVisible})
    },

    render: function() {
        var showThreads = this.state.threads.map((thread) => {
            return (
                <ShowThreads thread ={thread}/>
            )
        });

        var rows = [(
            <tr onClick={this.onClick}>      
                    <td>{this.props.row['id']}</td>
                    <td>{this.props.row['email']}</td>
                    <td>{this.props.row['first']}</td>
                    <td>{this.props.row['last']}</td>
                    <td>{this.props.row['title']}</td>
                    <td>{this.props.row['company']}</td>
                    <td>{this.props.row['linkedin_url']}</td>
                    <td>{this.props.row['role']}</td>
                </tr>
            ),(
                <tr>
                    <td colSpan="8">
                         {
                            this.state.threadVisible
                            ? {showThreads}
                            : null
                        }
                    </td>
                </tr>
        )]
        return(
            <tbody>
                {rows}
            </tbody>
        )
    },

})

当我打印出 showThreads 时,它按预期返回了一个包含 4 个对象的数组。不太确定为什么我会收到该错误?目标是在每行下方创建 4 个从 onClick 可见的“线程”。

最佳答案

{showThreads} 是一个对象,而不是您期望的数组。您需要一个简单的 showThreads 来代替,因为条件已经在大括号内。

关于javascript - react : Uncaught Error: Objects are not valid as a React child,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40953741/

相关文章:

javascript - 具有html的js对象的访问值

reactjs - i18next-scanner 实现挑战

node.js - Heroku/Node/React - 如何访问 heroku 上的 Node api 端点

javascript - 如何在mapbox gl js中的wms图层示例上添加鼠标移动事件?

javascript - 如何遍历 2 列并在条件下设置单元格的颜色

javascript - Angular.js,取消ng-click事件

reactjs - 我正在使用 React-adal 进行 Azure AD 单点登录。它的 token 将在 1 小时后过期。有没有办法刷新 session 或延长 session 过期时间

javascript - 获取请求的 400(错误请求)参数是一个 url

javascript - 如何在 beforeload 事件中获取 Extjs 4 商店的请求数据?

javascript - 数据在一页上的多个 Aurelia 应用程序之间移动