我一直在尝试在 Storybook 中使用 Next.js 中的 useRouter 钩子。但是,每次加载 Storybook 时,我都会收到“无法读取 null 的属性“路径名””。我该如何解决这个问题?
import { useRouter } from "next/router";
const NavStrip = () => {
const router = useRouter();
return (
...
<Link href="/dashboard" passHref>
<StyledLink active={router.pathname === "/dashboard"}>
...
</StyledLink>
</Link>
...
)
}
Run Code Online (Sandbox Code Playgroud)
NavStrip.stories.tsx
import React from "react";
import NavStrip from "./index";
export default {
component: NavStrip,
title: "NavStrip",
};
export const Default = () => <NavStrip />;
Run Code Online (Sandbox Code Playgroud) 这是我一直在处理的一个问题。我的临时解决方案是在我的 Contracts 目录中创建一个 SafeMath.sol 文件并直接从那里导入它。不过,我一直在寻找这样的“清晰的解决方案” ......老办法似乎是直接从GitHub的链接导入它,因为在某些回购和其他堆栈溢出的职位像看到这样的
但是,正确的方法似乎是安装相应的 oz 包(@openzeppelin/contracts-ethereum-package)并将文件直接导入到所需的合约中,即
import "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol";
但是,使用 VSCode,我仍然收到错误Source "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol" not found: File import callback not supported
也就是说,如何正确导入 SafeMath?
编辑:我正在使用 pragma solidity ^0.6.0;