0
例如,中繼是否能夠知道某個字段應該是Date
,並將該值從string
轉換爲Date
?有沒有可以放置這種邏輯的地方?如何用繼電器執行類型強制?
例如,中繼是否能夠知道某個字段應該是Date
,並將該值從string
轉換爲Date
?有沒有可以放置這種邏輯的地方?如何用繼電器執行類型強制?
也許,這取決於您希望轉換髮生的位置。
如果它是一個變量,Relay
容器有一個prepareVariables
道具,它具有一個函數。不過,我懷疑這是你以後的事情,因爲你不能通過一個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),
};
},
});
如果你希望強制中繼容器的輸出,你就必須要麼在真實消費道具的成分做,或者更高階的組件。下面是使用的最高級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