現象
Object.values
を使った場合、返り値がArray<mixed>
だとflowに認識されてしまいます。
const obj = {
data: {
title: 'hoge',
label: 'fuga',
},
}
const fromValue = Object.values(obj).map(data => console.log(data.title)); // fails
解決法
Object.keys
を使用するとでエラーを回避できます
const fromKeys = Object.keys(obj).map(key => console.log(obj[key].title)); // works
(Try Flowで実際に動かしてみてください)
reactで以下の様にObject.values
を使うときは、
{Object.values(obj).map((data) => (
<CustomContainer
title={data.title}
label={data.label}
>
)}
Object.keys
に置き換えたらFlowエラーがでなくなります。
{Object.keys(obj).map((key) => (
<CustomContainer
title={obj[key].title}
label={obj[key].label}
>
)}