2017-04-16 52 views
0

我正在使用ReactCSSTransitionGroup,CSS模塊和Flow。允許將一個對象(用於CSS模塊)傳遞給ReactCSSTransitionGroup以進行流驗證

<ReactCSSTransitionGroup 
    transitionName={{ 
    enter: slideTransition.enter, 
    enterActive: slideTransition.enterActive, 
    leave: slideTransition.leave, 
    leaveActive: slideTransition.leaveActive, 
    }} 
    transitionEnterTimeout={500} 
    transitionLeaveTimeout={500} 
> 
    { /* ... */ } 
</ReactCSSTransitionGroup> 

因爲我使用的CSS模塊,我必須要通過每個enterenterActiveleaveleaveActive對象的關鍵。

然而,flow檢查該文件的告訴我下面的:

src/components/Category.jsx:153 
153:   transitionName={{ 
          ^object literal. This type is incompatible with 
14:  transitionName: string | ReactCSSTransitionGroupNames, 
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ union: string | ReactCSSTransitionGroupNames. See lib: flow-typed/npm/react-addons-css-transition-group_v15.x.x.js:14 
    Member 1: 
    14:  transitionName: string | ReactCSSTransitionGroupNames, 
          ^^^^^^ string. See lib: flow-typed/npm/react-addons-css-transition-group_v15.x.x.js:14 
    Error: 
    153:   transitionName={{ 
           ^object literal. This type is incompatible with 
    14:  transitionName: string | ReactCSSTransitionGroupNames, 
          ^^^^^^ string. See lib: flow-typed/npm/react-addons-css-transition-group_v15.x.x.js:14 
    Member 2: 
    14:  transitionName: string | ReactCSSTransitionGroupNames, 
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ReactCSSTransitionGroupNames. See lib: flow-typed/npm/react-addons-css-transition-group_v15.x.x.js:14 
    Error: 
    14:  transitionName: string | ReactCSSTransitionGroupNames, 
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `appear`. Property not found in. See lib: flow-typed/npm/react-addons-css-transition-group_v15.x.x.js:14 
    153:   transitionName={{ 
           ^object literal 

有沒有一種方法可以讓我沉默這個錯誤,或者傳遞正確的類型,而能夠使用CSS模塊?

回答

0

transitionName使用的類型了嚴格的名單:

export const nameShape = React.PropTypes.oneOfType([ 
    React.PropTypes.string, 
    React.PropTypes.shape({ 
    enter: React.PropTypes.string, 
    leave: React.PropTypes.string, 
    active: React.PropTypes.string, 
    }), 
    React.PropTypes.shape({ 
    enter: React.PropTypes.string, 
    enterActive: React.PropTypes.string, 
    leave: React.PropTypes.string, 
    leaveActive: React.PropTypes.string, 
    appear: React.PropTypes.string, 
    appearActive: React.PropTypes.string, 
    }), 
]); 

你的情況,你錯過了這些要求appearappearActive道具。

flow也由這些行通知你:

Error: 
    14:  transitionName: string | ReactCSSTransitionGroupNames, 
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `appear`. Property not found in. See lib: flow-typed/npm/react-addons-css-transition-group_v15.x.x.js:14 
    153:   transitionName={{ 
           ^object literal 
相關問題