在我的react
应用程序中,我有一些页面:
我需要跟踪用户使用Google Analytics(分析)的活动。我在react-ga上搜索了一下,一切都很好。但是,有了这个库,我必须在使用的每条路线上初始化我的GA。例如:
路线“ /”-主页:
class Main extends Component {
componentDidMount() {
initGA();
}
render() {
return (
<div>
<Component1 />
<Component2 />
</div>
)
}
}
我的initGA()
样子是:
import ReactGA from 'react-ga';
export const initGA = () => {
ReactGA.initialize('UA-00000000-1');
ReactGA.pageview(window.location.pathname + window.location.search);
console.log(window.location.pathname + window.location.search);
}
我的App class
样子是:
class App extends Component {
render() {
return (
<BrowserRouter>
<div className="App">
<Switch>
<Route exact path="/" component={Main} />
<Route exact path="/signup" component={SignupLayout} />
<Route component={PublicLayout} />
</Switch>
</div>
</BrowserRouter>
);
}
}
在使用方式上,react- ga
我initGA()
在每个组件上添加了功能,这些功能会在路线响应中呈现。我认为initGA()
在每个组件中重复都是不正确的。拜托,伙计们,您如何使用react- ga
?什么是使用react-ga的正确方法?
要使其工作,需要使用Router
功能。因此在App组件中import { Router } from 'react-router- dom'
。它必须是路由器而不是BrowserRouter。
然后 import createHistory from 'history/createBrowserHistory'
const history = createHistory()
ReactGA.initialize('UA-000000-1');
history.listen((location, action) => {
ReactGA.pageview(location.pathname + location.search);
console.log(location.pathname)
});
此代码将在每次更改路线时触发!
比给路由器组件一个历史属性。
完整的代码:
import React, { Component } from 'react';
import { Router, Route, Switch } from 'react-router-dom';
import createHistory from 'history/createBrowserHistory'
import Main from './components/pages/Main';
import ReactGA from 'react-ga';
const history = createHistory()
ReactGA.initialize('UA-00000000-1');
history.listen((location, action) => {
ReactGA.pageview(location.pathname + location.search);
console.log(location.pathname)
});
class App extends Component {
render() {
return (
<Router history={history}>
<div className="App">
<Switch>
<Route exact path="/" component={Main} />
<Route exact path="/signup" component={SignupLayout} />
<Route component={PublicLayout} />
</Switch>
</div>
</Router>
);
}
}
export default App;
问题内容: 当我卷曲东西时,它可以正常工作: 我如何使它与axios一起正常工作?如果这很重要,我正在使用react: 由于某些原因,这不起作用。 问题答案: 这是我如何使用axios在react中上传文件 资源
问题内容: 我正在使用React 16,并且需要门户网站,但是无法找到有关此功能的任何文档。有人知道怎么使用吗? https://github.com/facebook/react/pull/10675 感谢您的任何建议。 问题答案: React v16刚刚发布了几个小时(正式版),正式支持。 什么是门户? 到现在已经有多久了? 门户网站提供了一种一流的方式来将子级呈现到父组件的DOM层次结构之外
问题内容: 在React的官方文档中,它提到- 如果您熟悉React类的生命周期方法,则可以将useEffect Hook视为componentDidMount,componentDidUpdate和componentWillUnmount的组合。 我的问题是-我们如何在钩子中使用lifecyle方法? 问题答案: 你不能使用任何现有的生命周期方法(,,在钩等)。它们只能在类组件中使用。并且使用挂
问题内容: 使用此样板作为参考,我创建了一个Electron应用程序。它使用webpack捆绑脚本并通过Express Server托管脚本。 的WebPack配置是实质上相同的这个和服务器这样。 Electron的脚本加载: 然后index.html加载服务器托管的脚本: 我运行以构建应用程序并启动服务器,该服务器使用webpack将脚本捆绑在一起。 它工作正常,我的React组件App已安装。
问题内容: 我一直在阅读以下链接: https : //reactjs.org/docs/hooks-faq.html#how-do-i- implement-shouldcomponentupdate https://reactjs.org/blog/2018/10/23/react -v-16-6.html 在第一个链接中显示为(https://reactjs.org/docs/hooks-f
问题内容: 如何在React中使用jQuery UI?我已经通过Googling看到了几个示例,但它们似乎都已过时。 问题答案: 如果您 确实 需要这样做,这是我正在使用的一种方法。 计划: 创建一个组件来管理jQuery插件 。该组件将提供以React为中心的jQuery组件视图。此外,它将: 使用React生命周期方法来初始化和拆除jQuery插件; 使用React 作为插件配置选项并连接到插