小编max*_*701的帖子

在 if 语句中调用 useState hook 的 setter 是否意味着 BREAKING RULES OF HOOKS?

React 文档声明: 不要在循环、条件或嵌套函数中调用 Hook。

调用钩子是否意味着只是调用useStateeg const [state, useState] = useState(0)

在条件中调用 setter 怎么样?

这段代码是否违反了钩子规则?

const [oneHook, setOneHook] = useState(0)
const [anotherHook, setAnotherHook] = useState(false)

if (something) {
   setOneHook(1)
   setAnotherHook(true)
} else {
     setOneHook(0);
     setAnotherHook(false)
}
Run Code Online (Sandbox Code Playgroud)

谢谢 !

javascript reactjs react-hooks

5
推荐指数
1
解决办法
1718
查看次数

PUPPETEER-无法使用page.evaluate(()=> document.querySelectorAll())在某些网站上提取元素

我正在尝试选择console.log()终端中网站的所有链接的NodeList。但是我无法访问某些网站-google.comfacebook.cominstagram.com

我知道元素在那里,因为我当然可以将它们记录在实际的Chromium控制台中,该控制台使用单独加载document.querySelectorAll('a')。但是当我尝试在Node终端中提取和记录链接时,使用

const links = await page.evaluate(() => document.querySelectorAll('a'))
console.log(links)
Run Code Online (Sandbox Code Playgroud)

我懂了 undefined

但是,对于大多数网站(例如yahoo.comlinkedin.com)而言,情况并非如此。这里是:

const URL = 'https://instagram.com/';
const scrape = async () => {
    const browser = await puppeteer.launch({
        headless: false
    });
    const page = await browser.newPage();
    await page.setViewport({
        width: 1240,
        height: 680
    });
    await page.goto(URL, { waitUntil: 'domcontentloaded' });
    await page.waitFor(6000);
    const links = await page.evaluate(() => document.querySelectorAll('a'));
    console.log(links);
    await page.screenshot({
        path: 'ig.png' …
Run Code Online (Sandbox Code Playgroud)

javascript node.js puppeteer

0
推荐指数
1
解决办法
106
查看次数

标签 统计

javascript ×2

node.js ×1

puppeteer ×1

react-hooks ×1

reactjs ×1