我正在尝试从名为Vega-Lite
的项目中导入名为Voyager
的React类。
这是我的代码:
[User(key=Key('User', 5275456790069248), auth_ids=[u'abc@gmail.com'], created=datetime.datetime(2017, 8, 29, 22, 50, 36, 297407), email='abc@gmail.com'),
User(key=Key('User', 5838406743490560), auth_ids=[u'def@gmail.com'], created=datetime.datetime(2017, 8, 29, 16, 23, 16, 406468), email='def@gmail.com'),
User(key=Key('User', 6401356696911872), auth_ids=[u'ghi@gmail.com'], created=datetime.datetime(2017, 8, 30, 12, 34, 51, 816926), email='ghi@gmail.com')]
这是我的错误:
[ts] JSX元素类型'VegaLite'不是JSX的构造函数 元素。属性'componentDidMount'在类型中受到保护 'VegaLite',但在'ElementClass'类型中公开。
我知道在课程Vega-Lite
中,函数users_new_list = []
allusers = User.query().fetch()
for user in all_users:
#How to get key in string and pass into 'users_new_list'
users_new_list.append(keyString)
确实是import * as React from 'react';
import {VegaLite} from 'datavoyager/build/components/vega-lite';
export interface Props {
spec: any;
logger: any;
}
export const View = ({spec, logger}: Props) => {
return(
<VegaLite spec={spec} logger={logger}/>
);
};
。但是如何修复此错误?
PS:我已尝试在componentDidMount()
中将protected
设为allowSyntheticDefaultImports
,但同样的错误仍然存在。
答案 0 :(得分:2)
您需要将您的反应类型降级到formula(mod_std)
## mpg ~ `log(wt)` + qsec + `log(wt):qsec`
## <environment: 0x000000000b1988c8>
以下版本。从15.0.25
版本开始,所有生命周期方法都被强制公开。
以下是关于它的问题:https://github.com/DefinitelyTyped/DefinitelyTyped/issues/16893
更好的解决方案是在15.0.25
repo中创建一个问题,告诉他们他们的组件与更新的反应类型不兼容。他们使用voyager
。