小编Sus*_*mit的帖子

在react中的异步await块中的setState挂钩之后获取最新的状态值

useEffect我有一个下拉菜单,当更改时调用 api 使用钩子获取数据:

const [selectedComplianceFilter, setComplianceFilter] = useState("all");

useEffect(() => {
  if (selectedComplianceFilter === "all") {
    fetchFullReport();
  } else {
    fetchReportByCompliance(selectedComplianceFilter);
  }
}, [selectedComplianceFilter]);

<select
  name="compliance"
  className="custom-select w-auto"
  onChange={e => setComplianceFilter(e.target.value)}
>
  <option value="all">All</option>
  {compliances.map((compliance, i) => (
    <option key={i} value={compliance}>
      {compliance}
    </option>
  ))}
</select>
Run Code Online (Sandbox Code Playgroud)

我有另一个useEffect钩子,它调用另一个返回扫描状态的 api

useEffect(() => {
  fetchCompliances();

  let intervalId;

  getScanStatus(0);
  fetchFullReport();

  intervalId = setInterval(() => {
    getScanStatus(intervalId);
  }, 10000);

  return () => {
    componentDidUnmount.current = true;
    clearInterval(intervalId);
  };
}, []);
Run Code Online (Sandbox Code Playgroud)

这是获取扫描状态的函数:

const [scanStatus, …
Run Code Online (Sandbox Code Playgroud)

javascript setinterval async-await reactjs react-hooks

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

在 React.js 中的 setState 之后自动滚动到呈现的元素

假设我在页面顶部的列表项上有一些 setState 声明,如下所示:

<DropdownMenu >
    <DropdownItem className="channel-setting__btn"
      onClick={() => this.setState({ facebookFields: true, youtubeFields: true })}>All</DropdownItem>

    <DropdownItem
      className="channel-setting__btn"
      onClick={() => this.setState({ facebookFields: true, youtubeFields: false })}>Facebook
    </DropdownItem>

    <DropdownItem
      className="channel-setting__btn"
      onClick={() => this.setState({ facebookFields: false, youtubeFields: true })}>Youtube
    </DropdownItem>

</DropdownMenu>
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让我在点击 DropDownItem 时,无论 DOM 元素呈现什么,页面都会自动平滑滚动到该部分或元素呈现在页面上的任何位置,在这种情况下,元素是 facebook 和 youtube 的不同形式,它们将呈现在最后并且太接近页面的末尾。

reactjs

4
推荐指数
1
解决办法
2万
查看次数

错误 TS2678 类型“'String'”与 Angular 5 中的类型 '""' 不具有可比性

这是我的角度 5 代码:

gotToWallet(wallet) {

  const { countryId = '', currencyType = '' } = wallet || {};

  let walletIdentity;

  switch (currencyType) {
    case 'CRYPTO':
      walletIdentity = 'userWalletIdentity';
     break;
    case 'FIAT':
      walletIdentity = 'fiatWalletIdentity';
     break;
    case 'ERC20TOKEN':
      walletIdentity = 'xbxUserWalletIdentity';
     break;
 }

  const { currencyId = '' } = (wallet || {})[walletIdentity] || {};
  this.router.navigate([`walletMgmt/wallet-details/${currencyId}/${countryId}`]);

}
Run Code Online (Sandbox Code Playgroud)

运行ng build命令时出现以下错误:

ERROR in src/app/wallet-management/wallets/wallets.component.ts(202,12): error TS2678: Type '"CRYPTO"' is not comparable to type '""'.
src/app/wallet-management/wallets/wallets.component.ts(205,12): error TS2678: Type '"FIAT"' is not …
Run Code Online (Sandbox Code Playgroud)

javascript switch-statement typescript angular5

3
推荐指数
1
解决办法
6737
查看次数

在reactjs的每个组件中重用useEffect代码

我有一个在组件中useEffect初始化的组件,如下所示:wowjs

import WOW from "wowjs";

const HomePage = () => {

useEffect(() => {
        const wow = new WOW.WOW({
        boxClass: "wow",
        animateClass: "animated",
        offset: 0,
        mobile: false,
        live: true,
        scrollContainer: null
      });
      wow.init();
    }, []);

  return (
    <div>
      ....
    </div>
  )
}
Run Code Online (Sandbox Code Playgroud)

我希望useEffect在许多组件中使用此功能,以便wowjs动画可以在每次路线更改时运行。如何避免在我的 ReactJS 项目中重复此代码?

dry reactjs wow.js react-hooks

3
推荐指数
1
解决办法
5471
查看次数

Git 挂钩权限被拒绝

当我尝试运行时,git commit -m 'message here'出现以下错误。

fatal: cannot exec '.git/hooks/prepare-commit-msg': Permission denied

当我在 ubuntu 上创建一个新分区并在其中克隆存储库后,这个问题就开始了。

git githooks ubuntu-20.04

3
推荐指数
1
解决办法
9821
查看次数

为什么1+ []在JavaScript中返回“ 1”?

最近,我的一个朋友问我一个问题:

![]+1+[]+false
Run Code Online (Sandbox Code Playgroud)

经过评估我凭直觉去回答2。但是,当我在浏览器控制台中尝试该表达式时,得到的输出是"1false"

对我来说,最奇怪的部分是1+[]哪个"1"

我不明白为什么会这样,它如何运作?

有人可以解释一下吗?

谢谢

javascript

2
推荐指数
2
解决办法
108
查看次数