2016-09-10 23 views
1

我在我的React项目中使用material-ui。我正在尝试将Flow引入混音中。如何为从库导入的React组件添加定义

一个例子:

import Paper from 'material-ui/Paper'; 

type Props = { 
    ruleName: string, 
    rules: Object[], 
    actions: string[], 
    allowSubmit: boolean, 
    onSubmit: ?Function, 
} 

const NotifyRule = (props: Props) => (
    <Paper style={{ padding: 10, width: '100%' }}> 
     .... 
    </Paper> 
); 

我试着写了材料UI定义为

declare module 'material-ui' { 
    declare type Paper = any; 
    declare var exports: 'material-ui'; 
} 

这是行不通的。我得到一个错误:

import Paper from 'material-ui/Paper'; ^^^^^^^^^^^^^^^^^^^ material-ui/Paper. Required module not found

解决,这将是非常有帮助的任何指针。

+0

你在.flowconfig中指定了[libs]节吗? – Kafo

+0

是的,我相信我有正确的库。 – sheki

+0

你能发布更多的代码吗?任何与此有关的事情 – Kafo

回答

2

你必须单独声明子模块,使流量识别它:

declare module 'material-ui/Paper' { 
    declare var exports: any; 
} 

declare module 'material-ui' { 
    // Note: That export value looks weird to me, but whatever 
    declare var exports: 'material-ui'; 
} 

我们没有用在flow-typed仓库终极版,传奇类似的东西......也许你会得到一些启示有:-)

https://github.com/flowtype/flow-typed/blob/master/definitions/npm/redux-saga_v0.11.x/flow_%3E%3Dv0.28.x/redux-saga_v0.11.x.js

相关问题