我在获取嵌套props函数的值时遇到问题。
this.props.user.getPerson().getData()
getPerson
返回带有与人相关的数据的新对象。
getData
返回与个人相关的数据。
为了便于阅读,它是分开的,我想使其用于单元测试。
测试1:
let _wrapper,
initialProps
beforeEach(() => {
initialProps = {
user: {
getPerson: () => {}
}
}
_wrapper = shallow(<Test1 {...initialProps} />)
})
some tests...
})
它返回了TypeError: Cannot read property 'getData' of undefined
。
Test2
let _wrapper,
initialProps
beforeEach(() => {
initialProps = {
user: {
getPerson: () => { getData: () => {} }
}
}
_wrapper = shallow(<Test2 {...initialProps} />)
})
some tests...
})
它返回了TypeError: Cannot read property 'getData' of undefined
与Test1相同的错误。
我试图通过传递函数来获取props函数的值,但是从第二个函数开始却不起作用。
如何获取嵌套props函数的值?
答案 0 :(得分:1)
您需要wrap object literals in parentheses to return them from arrow functions:
initialProps = {
user: {
getPerson: () => ({ getData: () => { } }) // wrap in parentheses
}
}