Reactjs 需要对对象文本进行注释的流

Reactjs 需要对对象文本进行注释的流,reactjs,react-jsx,flowtype,Reactjs,React Jsx,Flowtype,假设cx定义为: var cx = require('classnames'); …我有以下JSX代码: test: function(panelEnabled: boolean) { const klass = cx({disabled: !panelEnabled}); return (<div className={klass}>foo</div>); }, 我的问题是: 这一信息的原因和意义是什么 正确的处理方法是什么 为什么不清楚,如果pan

假设
cx
定义为:

var cx = require('classnames');
…我有以下JSX代码:

test: function(panelEnabled: boolean) {
    const klass = cx({disabled: !panelEnabled});
    return (<div className={klass}>foo</div>);
},
我的问题是:

  • 这一信息的原因和意义是什么
  • 正确的处理方法是什么
  • 为什么不清楚,如果
    panelEnabled
    boolean
    那么
    !panelEnabled
    也是布尔值

  • 您似乎安装了错误版本的
    classnames
    定义文件

    如果在定义文件中看到注释行

    // flow-typed version: dc0ded3d57/classnames_v2.x.x/flow_>=v0.23.x_<=v0.27.x
    
    这是我的
    index.js

    // @flow
    
    const cx = require('classnames');
    
    const test = function(panelEnabled: boolean) {
      const klass = cx({disabled: !panelEnabled});
      return (<div className={klass}>foo</div>);
    }
    

    没有错误

    可能是流错误?我已经安装了
    Flow-typed
    version
    2.0.0
    。我想发生的事情是,当我把我的
    flow bin
    版本从
    0.27.0
    升级到
    0.35.0
    时,我还应该做一个
    flow-typed安装——覆盖
    (我没有这样做),因为根据我目前收集的信息,
    flow-typed
    package.json
    中声明的
    flow-bin
    版本获取适当的libdef。是吗?没错,
    flow-typed install
    根据您的package.json获取适当的libdef,并根据您的
    flow-bin
    依赖关系决定流的版本。因此,是的,您应该在碰撞
    flow-bin
    依赖项之后运行
    flow-typed-install
    test: function(panelDisabled: boolean) {
        const klass = cx({disabled: panelDisabled});
        return (<div className={klass}>foo</div>);
    },
    
    // flow-typed signature: 2dfd96b054f56a84f2d08769019d32d7
    // flow-typed version: dc0ded3d57/classnames_v2.x.x/flow_>=v0.23.x_<=v0.27.x
    
    type $npm$classnames$Classes =
      string |
      // We need both of these because if we just have the latter it won't accept objects typed
      // explicitly as the former, due to mutation concerns.
      {[className: string]: boolean } |
      {[className: string]: ?boolean } |
      Array<string> |
      false |
      void |
      null
    
    declare module 'classnames' {
      declare function exports(
        ...classes: Array<$npm$classnames$Classes>
      ): string;
    }
    
    // flow-typed version: dc0ded3d57/classnames_v2.x.x/flow_>=v0.23.x_<=v0.27.x
    
    {
      "name": "flow-classnames",
      "scripts": { "flow": "flow" },
      "dependencies": {
        "classnames": "^2.2.5"
      },
      "devDependencies": {
        "flow-bin": "^0.35.0"
      }
    }
    
    // @flow
    
    const cx = require('classnames');
    
    const test = function(panelEnabled: boolean) {
      const klass = cx({disabled: !panelEnabled});
      return (<div className={klass}>foo</div>);
    }
    
    npm install
    flow-typed install
    npm run flow