react-redux connect
関数(デコレータ)を使用してプロパティを設定するReactコンポーネントがあります。 JSXでこのコンポーネントを参照する場合、flowtypeは「プロパティは、要素を反応させるのでは...の小道具が見つからない」文句React Redx Flowtype「プロパティが見つかりません」reduxからプロパティを取得するReact要素connect
type SidebarCmpProps = {
activeSidebarComponent: string,
actions: { openCallMember:() => void }
}
@connect(
(state) => {
return { activeSidebarComponent: state.sidebar.activeSidebarComponent }
},
(dispatch) => ({ actions: bindActionCreators({ openCallMember }, dispatch) })
)
class Sidebar extends React.Component {
props: SidebarCmpProps
static propTypes = {
actions: React.PropTypes.object.isRequired,
activeSidebarComponent: React.PropTypes.string
}
}
正確なエラーは次のとおりです。
65: ^^^^^^^^^^^ React element `Sidebar` 56: props: SidebarCmpProps ^^^^^^^^^^^^^^^ property `actions`. Property not found in... 65: ^^^^^^^^^^^ props of React element `Sidebar`
は私が持っていたエラーを回避するにはany
の労働組合の種類にプロパティを変更し、理想的な
type SidebarCmpProps = {
activeSidebarComponent: any | string,
actions: any | { openCallMember:() => void }
}
class Sidebar extends React.Component {
static defaultProps: SidebarCmpProps = {
actions: null,
activeSidebarComponent: null
}
}
未満のdefaultProps
を、追加しますより良い解決策はありますか?
'propTypes'に' actions'を書いてみましたか? –
'prop'を' propTypes'で形状に変更しても、エラーを "解決"するために 'any'共用体型を使う必要がありません。私は 'activeSidebarComponent:string'プロップからも同じエラーを受け取ります(簡潔さのため、上に貼り付けません) – joshm1