javascript - React:在返回的组件实例上找不到`render`方法:您可能忘记定义`render`
问题描述
我从代码中得到上述错误:
<EditableContainer handleFn={this.onSaveTitle} component={FieldStyle}>{props.child}</EditableContainer>
class EditableContainer extends React.Component<any, any> {
render () {
const {children, ...rest} = this.props
const {edit} = this.state
if (edit) {
return (
<Component
autoFocus
onBlur={this.handleBlur.bind(this)}
value={this.state.children}
onChange={this.handleOnChange}
render={(props) => this.props.component.render(props)}
/>
)
}
}
class FieldStyle extends React.Component<any, any> {
render () {
const {autoFocus, ...rest} = this.props
// auto focus
const ref = autoFocus ? (ref) => { this.ref = ref } : null
return (
<TextField
ref={ref}
type="text"
{...rest}
/>
)
}
}
如您所见,我正在尝试使用具有道具的 React指定应将哪个组件加载EditableContainer
到实际组件本身。但是,我得到了错误。Component
component
我究竟做错了什么?
解决方案
我可能会将您更改props
为此(注意 中的大写字母C
)Component
:
<EditableContainer handleFn={this.onSaveTitle} Component={FieldStyle}>{props.child}</EditableContainer>
Component
你需要this.props
像EditableContainer
这样解构:
const {children, Component, ...rest} = this.props
推荐阅读
- laravel - laravel 7 验证唯一的多列
- python-3.x - 你好,我正在制作一个网页抓取 python 脚本来遍历整个 HTML。现在只需要第一个
- java - Jackson deserilizer 未使用 kotlin 协程在 webflux 中注册
- css - Safari 是否有 CSS 位置动画错误?
- python - 在每次重复中选择满足条件的 ID
- node.js - 在 ubuntu 中找不到正确的节点和 npm 实例
- amazon-web-services - 一旦消息到达 PubSub,有没有办法使用 Dataflow 删除 SQS 中的消息?
- android - Huawei AppGallery Connect API - 403 客户端令牌授权失败
- r - For 循环跨越多个数据帧或小标题
- c# - C# GUI -- 使形状跟随鼠标并在点击时放置