Javascript react中具有常量接口的外部组件

Javascript react中具有常量接口的外部组件,javascript,reactjs,Javascript,Reactjs,干草, 我想在React中创建可重用的组件,比如DialogBox 它具有类型、消息和标题等必填字段 类型可以是“yesNo”字符串或“ok”字符串之一,它定义了应该显示多少按钮是&否,ok。 消息和标题是显示在对话框内部的简单文本 对此的简单看法: 我创建了DialogBox组件,可以像这样使用: <DialogBox type={'yesNo'} message={'Message'} title={'Title'} /> 要实现DialogBox.TYPE.YES\u NO

干草, 我想在React中创建可重用的组件,比如DialogBox

它具有类型、消息和标题等必填字段

类型可以是“yesNo”字符串或“ok”字符串之一,它定义了应该显示多少按钮是&否,ok。 消息和标题是显示在对话框内部的简单文本

对此的简单看法:

我创建了DialogBox组件,可以像这样使用:

<DialogBox type={'yesNo'} message={'Message'} title={'Title'} />
要实现DialogBox.TYPE.YES\u NO

在“我的组件”对话框中,我使用预定义元素创建了静态对象类型:

...
static TYPE = {
   YES_NO: 'yesNo',
   OK: 'ok'
}
...
当我想用静力学检查子组件中的道具时,一切都很美好:

ButtonArea.propTypes = {
    type: PropTypes.oneOf(Object.values(DialogBox.TYPE))
};
我得到了一个循环依赖项错误,并且我的DialogBox.TYPE在props定义中未定义。我就是这样看的:

在DailogBox.js中:

import ButtonArea from './BA';

export default class DialogBox extends Component {
 static TYPE = {
  YES_NO: 'yesNo',
  OK: 'ok'
 }

 render() {
  <ButtonArea type={this.props.type} />
 }

}
在检查propTypes时,对话框是循环依赖的未定义原因

问题是。 是否有一种方法可以创建组件,使其像组件一样使用,并且具有内部常量对象定义并避免循环依赖关系。比如:

<Test type={Test.TYPE.SUPER_TEST}/>
我不想导入Test和TestConst并像这样使用它:

<DialogBox type={DialogBox.TYPE.YES_NO} message={'Message'} title={'Title'} />
<Test type={TestConst.TYPE.SUPER_TEST}/>

您需要更新按钮的propsType,您需要检查键而不是值,如下所示

ButtonArea.propTypes = {
    type: PropTypes.oneOf(Object.keys(DialogBox.TYPE))
};

您需要更新按钮的propsType,您需要检查键而不是值,如下所示

ButtonArea.propTypes = {
    type: PropTypes.oneOf(Object.keys(DialogBox.TYPE))
};
ButtonArea.propTypes = {
    type: PropTypes.oneOf(Object.keys(DialogBox.TYPE))
};