小编Pau*_*ong的帖子

如何在使用 Flow 时将 props 传播到使用精确 props 的 React 组件?

考虑以下使用流道具的示例。

import * as React from 'react';

type FooProps = {| 
  foo: number,
  bar?: string 
|};

class Foo extends React.Component<FooProps> {}
Run Code Online (Sandbox Code Playgroud)

我们有 React 组件类Foo,它接受一个确切的道具对象。我们希望强制执行准确性,以便用户不会无意中在他们的道具上打错字(例如,baz当他们打算使用 时bar)。

这绝对可以正常工作,并且会按预期发生错误。

但是,如果我们想从其他地方将 props 传播到这个组件怎么办?例如:

const f = (props: FooProps) => <Foo {...props} />;
Run Code Online (Sandbox Code Playgroud)

Flow 会给我们一个关于正确性的错误props

10: const f = (props: FooProps) => <Foo {...props} />;
                                    ^ Cannot create `Foo` element because inexact props [1] is incompatible with exact `FooProps` [2].
References:
10: const f = (props: FooProps) …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs flowtype

6
推荐指数
1
解决办法
1826
查看次数

normalizr模式中的嵌套数组

我需要规范化这些数据,以便我有一个列表数组和另一个待办事项.

const data = [ 
  { 
    _id: '1', 
    title: 'List1', 
    todos: [
      {
         _id: "11", 
         text: "Test1"
      }
    ] 
  },
  { 
    _id: '2', 
    title: 'List2', 
    todos: [
      {
         _id: "22", 
         text: "Test2"
      }
    ] 
  } 
];
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

const todo = new schema.Entity('todos',{},{ idAttribute: '_id'});
const list = new schema.Entity('lists',{todos:todo},{idAttribute: '_id'});
const normalizedData = normalize(data, list);
console.log(normalizedData);
Run Code Online (Sandbox Code Playgroud)

我一直在尝试他们的例子,但它们似乎都不适用于这些数据.

任何帮助,将不胜感激.

javascript normalizr

4
推荐指数
1
解决办法
1629
查看次数

标签 统计

javascript ×2

flowtype ×1

normalizr ×1

reactjs ×1