我有一个包含在Relay容器中的组件:
const Widget = (props) => {
return (
<div> { props.foo.bar } </div>
)
}
Widget.defaultProps = { foo: {bar: 0} }
export default Relay.createContainer(Widget, {
fragments: {
store: () => Relay.QL`
fragment on WidgetData {
foo {
bar
}
}
`
}
})
我在后端使用GraphQL-as-a-service提供程序,当foo
的{{1}}属性不存在时,它返回{{1} },当我的组件尝试渲染WidgetData
据我所知,null
只有在道具为props.null.bar
时才有效,而不是在defaultProps
时。
在这种情况下,如何使用undefined
保护null
结果?
如果可能的话,希望避免为每个null
我引用写一个保护声明。
答案 0 :(得分:0)
您可以对继电器容器中的道具进行完整性检查。
render() {
let {
foo,
...other
} = this.props;
let bar = foo ? foo.bar : '';
return (
<div> { bar } </div>
)
}
有关详细信息,请结帐:https://github.com/bfwg/relay-gallery