我目前正在使用本地状态控制某些UI元素的React Native组件上工作,即,只有将state中的某些值设置为true
时才呈现某些元素。这些值会根据组件内的单击而变化。
使用react的TestRenderer
测试时,我是否可以指定初始状态?如果没有,我该如何进行测试?我希望能够针对某些状态渲染组件并对其进行测试。非常感谢您提供任何有益的意见。
如有必要,我可以提供更多细节。
谢谢。
编辑:添加了一个示例来说明我的代码。这不是我的组件代码,但说明了它的行为:
interface IMyComponentProps {
...
}
interface IMyComponentState {
showForm: boolean;
}
export class MyComponent extends React.Component<IMyComponentProps, IMyComponentState> {
constructor(props: any) {
super(props);
// showForm is initially false
this.state = {
showForm: false,
};
}
public render() {
// if showForm is true then render my form component
if (this.state.showForm) {
return <FormComponent />;
} else {
// otherwise render button that changes the state to showForm: true
// and causes a re-render
return <Button onClick={this.buttonClickFn} />;
}
}
private buttonClickFn = () => this.setState({...this.state, showForm: true});
}
答案 0 :(得分:1)
可以直接设置状态以进行测试:
componentInstance.state.showForm = true;
componentInstance.forceUpdate();