【问题标题】:Is it possible to make Flow validator check immutability-helper update syntax in reacts setState?是否可以让 Flow 验证器在 reacts setState 中检查 immutability-helper 更新语法?
【发布时间】:2019-03-10 01:48:34
【问题描述】:

我正在使用 flow 和与 vscode-flow-ide plugin 集成的 Visual Studio Code。不变性更新方法来自immutability-helper。 是否可以使 Flow 验证器检查 ::update 方法语法以查找您的状态类型定义的错误。

示例:

type State = {
    validTitle: boolean,
    post: {
        featured: boolean
    }
};
this.setState({
    validTitle: false,
    post: update(this.state.post, {
        featured: { $set: "" }
    })
});

每个简单的状态更新,如“validTitle”属性都将被正确验证,但 ::update 方法调用将被跳过,因为它的声明:

update<any, never>(target: any, spec: Spec<any, never>): any

所以我的问题是: 有没有办法强制 Flow 在更新的方法语法中查找错误,并且在我的示例中发现“特色”属性被设置为无效值?

【问题讨论】:

    标签: javascript reactjs visual-studio-code flowtype


    【解决方案1】:

    很遗憾,目前还没有这种方法。

    我已经开始考虑编写自己的包装函数来检查中间的类型,但后来我意识到回退到使用 Object.assign 和数组扩展运算符 [...array] 是公平和容易的,足以保持状态不变性.

    当然,通过这种方法,流验证器会通知您不正确的值分配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 2011-12-06
      • 2018-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多