You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React渲染接口返回值时报错Objects are not valid as a React child如何解决?

错误原因

你定义的<BackendRes>组件返回了fetch调用生成的Promise对象,React 不支持直接将 Promise 作为可渲染的子元素,因此抛出该错误。同时将接口请求逻辑放在render方法内也不符合规范,会导致每次组件重渲染都重复触发请求。

修复方案

通过类组件的 state 存储接口返回的文本内容,将请求逻辑移到componentDidMount生命周期钩子中执行,拿到返回结果后更新 state 即可正常渲染。
修正后的 React 组件代码如下:

import React from 'react';

class Login extends React.Component {
    // 初始化state,存储接口返回文本
    state = {
        backendRes: ''
    }

    componentDidMount() {
        // 组件挂载完成后发起请求
        fetch("/login")
            .then(res => res.text())
            .then(text => {
                console.log(text);
                // 更新state触发重渲染
                this.setState({ backendRes: text });
            })
    }

    render() {
        return (
            <div>
                {/* 渲染state中存储的接口返回值 */}
                {this.state.backendRes}
            </div>
        )
    }
}

export default Login;

内容的提问来源于stack exchange,提问作者Aqua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:00:04