我有一个带有一些componentDidMount逻辑的React组件:
export default class MyComponent {
componentDidMount() {
// some changes to DOM done here by a library
}
render() {
return (
<div>{props.data}</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以通过props传递此组件,以便componentDidMount()中的所有内容都被执行,以某种方式伪造以便截取屏幕截图?遵循以下原则:
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
const html = ReactDOMServer.renderToString(<MyComponent data='' />); <-- but this skips the componentDidMount logic
await page.setContent(html);
await page.screenshot({ path: 'screenshot.png' });
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用page.goto(),但是我有一些复杂的登录逻辑,我想使用这样的快捷方式来避免,而是将所有需要的道具直接传递给组件?