我目前在另一个组件中渲染 React 包装器组件时遇到问题。基本上,我导出默认
包装器组件(CreatePage),然后尝试将其导入到另一个组件(EditPage),但收到错误“无法读取属性pageType
”不明确的。” pageType
是我定义的 CreatePage 的一个 Prop ,但奇怪的是我在两个组件的渲染函数中都有调试器,但都没有被命中,所以我认为组件本身对于某些人来说存在问题原因但我不确定是什么。以下是 EditPage 中一些上下文的代码:
import React, { Component, PropTypes } from 'react';
import CreatePage from './CreatePage';
import withResource from '../../../../lib/withResource';
export class EditPage extends Component {
constructor(props){
super(props);
}
render() {
debugger;
return (
<div>
<CreatePage pageType={'edit'}/>
</div>
);
}
}
export default withResource(
{
name: 'EditResource',
key: 'hello',
},
EditPage);
CreatePage 代码:
export default class CreatePage extends Component {
constructor(props) {
super(props);
}
headerTitles = {
'create': i18n._('Create', '[m10n]'),
'edit': i18n._('Edit', '[m10n]'),
}
renderHeader(pageType) {
return (
<div className={cx('headerWrapper')}>
<div className={cx('header')}>
<div className={cx('title')}>
{this.headerTitles[pageType]}
</div>
</div>
</div>
);
}
renderCreateEditPage(pageType) {
return (
<div>
{this.renderHeader(pageType)}
<div className={cx('contentWrapper')}>
<div>
<NameTag type={'pageType'}/>
</div>
</div>
</div>
);
}
render() {
return (
<div className={cx('pageWrapper')}>
{this.renderCreateEditPage(this.props.options.pageType)}
</div>
);
}
}
最佳答案
CreatePage 正在查找 this.props.options.pageType
但您只是直接传入 pageType.. 没有提及 options 属性
关于javascript - react 组件: cannot read property of undefined error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38678644/