- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要访问 React 组件中的 window
对象以从查询字符串中获取某些内容。这就是我的组件的样子:
export function MyComponent() {
return (
<div>
Display the qs: {(window && window.location.search) || 'nothing'}
</div>
)
}
如果我运行应用程序,然后访问需要访问窗口的页面,这一切都很好,但如果我在需要窗口的页面上启动应用程序,则会收到以下错误:
ReferenceError: window is not defined
到目前为止,我看到的大多数解决方案都使用 componentWillMount
来解决该问题。那么我的问题是,如何在功能组件中解决这个问题?或者不使用生命周期方法的最佳方法是什么?
不确定这是否相关,但我也在使用 NextJS。
最佳答案
Next.js is universal, which means it executes code first server-side, then client-side. The window object is only present client-side, so if you absolutely need to have access to it in some React component, you should put that code in componentDidMount. This lifecycle method will only be executed on the client. You may also want to check if there isn't some alternative universal library which may suit your needs.
export function MyComponent() {
const isAvailable = useRef(false);
useEffect(() => {
isAvailable.current = typeof window !== "undefined" && window.location.search;
}, []);
return <div>Display the qs: {isAvailable.current || 'nothing'}</div>;
}
关于javascript - 功能性 react 组件上的窗口对象出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946028/
这纯粹是一个练习,但给出以下代码: var someCondition = (....); var res = []; if (someCondition) { res.push("A"); }
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 6年前关闭。
Heinrich Apfelmus慷慨地插话this问题。我曾考虑过使用 accumB作为解决方案,但认为会出现类型错误。无论如何,在尝试了他的建议之后,我确实收到了类型错误。 let bGameSt
我需要访问 React 组件中的 window 对象以从查询字符串中获取某些内容。这就是我的组件的样子: export function MyComponent() { return (
我如何声明接受数字和数字列表的函数,如果列表中没有这样的数字则返回 NONE,否则返回列表选项(Haskell 中的“Maybe”)没有这个数字?如果有多个这样的数字,函数必须只删除其中的第一个。 a
类型的值如何: type Tree = | Node of int * Tree list 有一个以函数方式生成的引用自身的值? 对于合适的 Tree 定义,结果值应等于以下 Python 代
我一直在脚本(数据科学工作)中使用 F# 并开发与 C# 一起使用的类库。在后一种情况下,我一直在使用纯功能代码创建模块。 如果我想开始完全在 F# 中开发大型应用程序,我不确定我会如何构建它。我发现
对于用函数式语言创建 GUI 的方法已经有很多研究。有用于推/拉 FRP、基于箭头的 FRP 以及可能还有其他高级研究的库。 Many people似乎同意这是更原生的方式,但几乎每个人似乎都在使用命
我现在正在 Traveler 中尝试处理独立于玩家的游戏状态更新。作为引用,该项目是 here (开发分支是与此问题相关的分支)。 Libraries/Universe/GameState.hs 有一
这里有 2 个对象: object1: { email: somevalue url: somevalue description: somevalue } object2:
我正在使用 Keras 函数式 API 创建一个神经网络,它将词嵌入层作为句子分类任务的输入。但是我的代码在连接输入层和嵌入层的开始就中断了。按照 https://medium.com/tensorf
为什么不能编译? #include #include class A { A() { typedef boost::function FunctionCall;
我很清楚为什么我们需要函数式 setState 以及它是如何工作的,例如 this.setState((prevState, props) => ...); 您可以像上面那样获取先前的状态作为参数。
我最近一直在研究使用 Javascript 进行的函数式编程,对此我是个菜鸟。 在编写一些“map”、“reduce”和“find”函数时,我发现从 JS 1.5 版开始,这些函数已经可用(参见 ht
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我正在寻找一种用于 HTML 表管理的一体化解决方案。我想要完成的是为用户提供简单的表管理,该管理将提供按列排序、过滤数据(每列或每表全局)、移动列(更改其顺序)和切换列可见性。 基本上是 ExtJS
我不明白其中的错误。我正在尝试使用 std::function 将成员函数作为参数传递。除了第 4 种也是最后一种情况外,它工作正常。 void window::newGame() { } //sho
我是 Scala 和函数式编程的初学者,我有一些算法代码可能有一些味道,因为它使用了可变性,但也有一个错误,部分原因是它是可变的。我有两组二维点。第 1 组中的每个点都与第 2 组中最近的点相关联(给
我正在尝试使用 Keras 实现带有负采样的 Word2Vec CBOW,遵循发现的代码 here : EMBEDDING_DIM = 100 sentences = SentencesIterato
我绝对为此失去了理智。我不明白为什么会这样。每次我运行此测试时,该对象都会保存到正常的非测试数据库中。然而,测试结束时的两个断言无论如何都失败了,说他们无法在数据库中找到任何用户,即使每次测试运行时我
我是一名优秀的程序员,十分优秀!