0
リレーは、たとえばフィールドがDate
であることを知り、その値をstring
からDate
に変換できますか?この種の論理を置くことができる場所はありますか?リレーで型強制を実行する方法は?
リレーは、たとえばフィールドがDate
であることを知り、その値をstring
からDate
に変換できますか?この種の論理を置くことができる場所はありますか?リレーで型強制を実行する方法は?
おそらく、変換がどこに起こるかによって異なります。
変数の場合、Relay
コンテナには、機能を持つprepareVariables
小包があります。私はこれがあなたの後ろのものだとは思わないが、Date
オブジェクトをvarに渡すことはできないので(afaik)それはそのようなものなら、 はしかし、ここでの例だadapted from the docs:
module.exports = Relay.createContainer(ProfilePicture, {
initialVariables: {size: 5},
prepareVariables: prevVariables => {
return {
...prevVariables,
size: typeof prevVariables.size === 'number'? * prevVariables.size : Number(prevVariables.size),
};
},
});
あなたはリレーコンテナの出力を強制することを望んでいるなら、あなたは、小道具を消費するのコンポーネントでそれを行うにはいずれかの必要がありますまたは高次コンポーネントで実行できます。ここでは最上級recompose使用して同じ例(とrecompose relay-containerは、同じ著者による、)です:
export default compose(
createContainer({
fragments: {
widget:() => Relay.QL`
fragment on Widget {
myDate
}`
}
}),
withProps(props => ({myDate: props.widget.myDate instanceof myDate ? props.widget.myDate : new Date(props.widget.myDate)}))
)(ProfilePicture)
私は、これは、クエリの 'resolve'機能によって行われるべきだと思います – Khang