我只想从 redux 存储中获取一次值,并在 useEffect 函数内使用一次。
但是 useSelector 需要位于组件的根级别,因此每次渲染都会运行它。这意味着如果我的 redux 存储中的值被更新,所有子组件也会更新。
我不希望这种事发生。(由于某种原因,redux 更新中断了我的一些动画)。我只希望它在安装组件时访问 useSelector 一次。
我怎样才能做到这一点?
当前的不良行为:
const Test = () => {
const select = useSelector(state=> state); // updates every dispatch
useEffect(()=> {
console.log(select.value);
}, []);
...
}
Run Code Online (Sandbox Code Playgroud)
想要的行为,如果反应会让我......
const Test = () => {
useEffect(()=> {
const select = useSelector(state=> state); // only accessed once, doesn't update children on later dispatches
console.log(select.value);
}, []);
...
}
Run Code Online (Sandbox Code Playgroud) 在功能组件中,我们对类组件使用 useState 而不是 this.setState。但据我所知,useState 一次只能设置一个状态,而 setState 可以一次设置多个状态(例如 this.setState({a1: true, a2: false}))。
这是否意味着如果您想使用 useState 同时设置两个状态,您会得到双重重新渲染,这是低效的?有办法解决这个问题吗?
javascript react-native react-functional-component use-state
我简化了学习 rust by example - Guards 中出现的一个示例:https://doc.rust-lang.org/rust-by-example/flow_control/match/guard.html
let number: u8 = 4;
match number {
i if i == 0 => println!("Zero"),
}
}
Run Code Online (Sandbox Code Playgroud)
上面的示例会导致有关匹配情况不全面的编译错误。我不知道为什么。文章说“请注意,编译器在检查匹配表达式是否涵盖所有模式时不会考虑保护条件。” 但下面的示例不会导致编译错误:
match number {
i => println!("Zero"),
}
Run Code Online (Sandbox Code Playgroud)
不同的是我去掉了守卫。如果不应该考虑守卫,为什么会影响事情呢?
我正在创建一个 Web api,它可以抓取给定的 url 并将其发回。我正在使用 Puppeteer 来做到这一点。我问了这个问题:Puppeteer 的行为不像开发者控制台
并收到一个答案,表明只有当 headless 设置为 false 时它才有效。我不想不断打开我不需要的浏览器用户界面(我只需要数据!),所以我正在寻找为什么 headless 必须为 false,我可以得到一个修复程序,让 headless = true 。
这是我的代码:
express()
.get("/*", (req, res) => {
global.notBaseURL = req.params[0];
(async () => {
const browser = await puppet.launch({ headless: false }); // Line of Interest
const page = await browser.newPage();
console.log(req.params[0]);
await page.goto(req.params[0], { waitUntil: "networkidle2" }); //this is the url
title = await page.$eval("title", (el) => el.innerText);
browser.close();
res.send({
title: title,
});
})();
})
.listen(PORT, () => …Run Code Online (Sandbox Code Playgroud) javascript ×2
puppeteer ×1
react-native ×1
reactjs ×1
redux ×1
rust ×1
use-state ×1
web-scraping ×1