在组件的渲染部分中,我有以下div:
<div className="col-sm-8" >
<input ref='full_link' className="formctrl" name='full_link' type='text'
value={browser.getURL(this.props.params.id)} />
</div>
要为此组件编写测试单元,我尝试浅显示它(const component = shallow(<myComponent />);
)并返回此错误:
TypeError: Cannot read property 'id' of undefined
所以我需要在测试中将这个道具发送给我的组件。如何将id
从this.props.params.id
发送到浅层渲染?
答案 0 :(得分:6)
只需像使用组件时通常那样传递道具:
const component = shallow(<myComponent params={{ id: 1 }} />)
别忘了JSX只是一种更好的方式:
React.createElement(MyComponent, { params: { id: 1 } });
注意:您调用了组件myComponent
,但在JSX中,用户定义的组件名称应以大写字母(MyComponent
)开头,而#34; normal&#34;元素(例如div)以小写字母开头。