[更新]在有人将其标记为重复之前,我发现答案有点模糊和简短
函数作为React子函数无效。如果返回组件而不是从渲染返回组件,则可能会发生这种情况
我有一个这样的反应组件
import React, { Component} from 'react';
import axios from 'axios';
import Modal from '../../component/UI/modal/modal.js'
import Aux from '../Aux.js'
const ErrorHandler = (WrappedComponent, axios) => {
return class extends Component {
state = {
error:null
}
componentDidMount () {
axios.interceptors.request.use(req => {
this.setState({error:null})
});
axios.interceptors.response.use(req => {
console.log(req)
}, error => {
this.setState({error:error})
});
}
errorConfirmedHandler = () => {
this.setStae({error: null})
}
render() {
return (
<Aux>
<Modal
order={this.state.error}>
purchasingHandlerClose={this.errorConfirmedHandler }
{this.state.error ? this.state.error.message : null}
</Modal>
<WrappedComponent {...this.props} />
</Aux>
);
}
}
}
export default ErrorHandler;
这是我的模态成分可能会导致问题
import React, { Component } from 'react';
import Classes from './modal.css'
import Aux from '../../../HOC/Aux.js'
import Backdrop from '../Backdrop/backdrop.js'
class Modal extends Component {
shouldComponentUpdate(nextProps, nextState) {
return nextProps.order !== this.props.order || nextProps.children !== this.props.children;
}
render () {
console.log(this.props.children)
return (
<Aux>
<Backdrop show={this.props.order} purchasingHandlerClose={this.props.purchasingHandlerClose} />
<div className={Classes.Modal} style={{display: this.props.order ? 'block' : 'none'}}>
{this.props.children}
</div>
</Aux> )
}
}
export default Modal;
我在控制台中看到以下错误
函数作为React子函数无效。如果返回组件而不是从渲染返回组件,则可能会发生这种情况
[问题]有人能解释一下是什么导致了这个错误,因为有人投票并写了一条评论说负责的代码不在这里(然后他删除了他的评论),因为如果将所有内容粘贴在这里,帖子会太长,因此寻找可以解释我这个错误的人)
发现错误
import React, { Component} from 'react';
import axios from 'axios';
import Modal from '../../component/UI/modal/modal.js'
import Aux from '../Aux.js'
const ErrorHandler = (WrappedComponent, axios) => {
return class extends Component {
state = {
error:null
}
componentDidMount () {
axios.interceptors.request.use(req => {
this.setState({error:null})
});
axios.interceptors.response.use(req => {
console.log(req)
}, error => {
this.setState({error:error})
});
}
errorConfirmedHandler = () => {
this.setStae({error: null})
}
render() {
return (
<Aux>
<Modal
order={this.state.error}>
purchasingHandlerClose={this.errorConfirmedHandler }
{this.state.error ? this.state.error.message : null}
</Modal>
<WrappedComponent {...this.props} />
</Aux>
);
}
}
}
export default ErrorHandler;
我应该这样做的
<Modal
order={this.state.error}
purchasingHandlerClose={this.errorConfirmedHandler }>
但我不小心这样做了( 注意
<Modal
order={this.state.error}>
purchasingHandlerClose={this.errorConfirmedHandler }
我正在使用react redux,我使用无状态组件 错误 这是我的index.js 我的app.js 存储在另一个index.js文件里在一个叫Redux的文件夹里 我尝试过NewHOC,但我无法摆脱错误
movie.js文件是: 我做错了什么?
我有视图组件,它必须导入多个组件。这些组件将根据某些特定条件进行渲染。它应该如何工作是,我在页面上有3个按钮,例如,在我点击第一个按钮(文件上传)后,我需要渲染<代码> 警告:函数作为React子函数无效。如果您返回组件而不是从渲染中返回,可能会发生这种情况。或者您可能打算调用此函数而不是返回它。 这到底有什么问题?
以下是主要游戏.js和应用程序.js文件: 在game.js文件中,我在H1中使用了numPicker函数。现在我得到了这个错误: 警告:函数作为React子函数无效。如果您返回组件而不是从渲染中返回,可能会发生这种情况。或者您可能打算调用此函数而不是返回它。
我是新手,我正在使用非官方的哈利波特api构建一个应用程序。 这是应用程序: 当我登录控制台时,来自API的JSON响应成功显示,但是我在渲染输出时遇到了问题。我正在使用Bulma进行前端样式。 这在我的app.js中 这是错误消息: 后端。js:6警告:函数作为React子函数无效。如果返回组件而不是从渲染返回组件,则可能会发生这种情况。或者你想调用这个函数而不是返回它。在p中(由HouseHi
问题内容: 我写了一个高阶组件: 我在我的App.js中使用以上内容: 但是,我得到的警告是: 警告:函数作为React子代无效。如果您从渲染返回一个Component而不是 ,则可能会发生这种情况。或者,也许您打算调用此函数而不是返回它。在应用程序的div(由应用程序创建)中的NewHOC(由应用程序创建)中 Movie.js文件为: 我究竟做错了什么? 问题答案: 您将其用作常规组件,但实际上