例如,中继是否能够知道字段应该是Date,并将该值从string转换为Date?有没有一个地方可以放置这种逻辑?
发布于 2017-04-18 23:21:24
也许,这取决于您希望转换发生在哪里。
如果它是一个变量,Relay容器有一个接受函数的prepareVariables属性。不过,我怀疑这就是您想要的,因为您不能(afaik)将Date对象作为变量传递。如果是这样的话,下面是一个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),
};
},
});如果您希望强制执行Relay容器的输出,则必须在使用该属性的组件中执行此操作,或者在更高级别的组件中执行此操作。下面是使用最高级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)https://stackoverflow.com/questions/40954715
复制相似问题