- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我决定使用 React-Router 来管理使用 REACT JS 的 Meteor JS 应用程序的路由。
我已经让 React-Router “以某种方式”工作,但它有一些负面影响,我想在这里解释一下,希望找到解决方案。
首先,这是我的代码:
if (Meteor.isClient) {
Meteor.startup(function () {
console.log('startup');
Hooks.init();
const {Router, Route} = ReactRouter;
const history = ReactRouter.history.useQueries(ReactRouter.history.createHistory)()
React.render((
<Router >
<Route name="home" path="/" component={Sidebar}>
<Route name="managedata" path="managedata" component={ManageData} />
</Route>
</Router>
), document.getElementById("render-target"));
});
}
为了在这两条路线之间导航,我使用了 React-Router 提供的 Link
组件:
<ReactRouter.Link className="item" to="/">
<i className="home icon"></i>
EXAMPLE
</ReactRouter.Link>
<ReactRouter.Link className="item" to="managedata">
<i className="block layout icon"></i>
Manage Data
</ReactRouter.Link>
这就是问题所在:1.) 加载以“/”作为路径的主页后,我收到显示 URL 的随机字符。这很丑陋,尤其是因为人们只期望“/”,或者除了域名或本地主机之外,url 中什么都没有显示......例如http://localhost:3000/#/?_k=q2c52z
2.) 当我点击“managedata”的Link
时,我还在 URL 中收到一些随机字符例如http://localhost:3000/#/managementata?_k=6clzfn
这是我的问题:
1.) 是什么导致这些丑陋的字符出现在 URL 中以及如何删除它们?
2.) Link
仅使用路径值吗?正如您在上面看到的,我的主页的名称为“home”,但路径为“/”,我注意到,如果我将 Link
更改为 Link to="home",那么我会被定向指向路径上带有“home”的 URL,这似乎不正确。
3.) 我最终使用上面的“组件”作为 Route 中的 props 之一。我注意到互联网上的许多示例都使用“处理程序”。但是,当我在代码中使用“处理程序”时......它不起作用......它们有何不同?
4.) 我已经按照上面的方式定义了我的路线,但是当我使用该页面时,最初不会呈现,但是如果我单击浏览器上的后退按钮,然后单击前进按钮,它就会呈现。我该如何解决这个问题?
最佳答案
几个小时前我遇到了上述问题。现在我已经找到了解决方案,我想将其发布在这里,希望为以后遇到同样问题的读者节省一些时间。
以下是问答:
1.) 是什么导致这些丑陋的字符出现在 URL 中以及如何删除它们?
根据https://github.com/rackt/react-router/blob/master/UPGRADE_GUIDE.md
“如果您没有指定历史记录类型(如上例所示),那么在更新到 1.0.0 后您会注意到一些异常行为。使用基于默认哈希的路由,未由您自己定义的查询字符串条目将开始出现在您的网址名为“_k”。其外观示例如下:?_k=umhx1s。“
因此将“历史记录”添加到路由器中。例如
const {路由器、路由、IndexRoute} = ReactRouter;
const history = ReactRouter.history.useQueries(ReactRouter.history.createHistory)()
React.render((
<Router history={history}>
<Route path="/" component={Sidebar}>
<IndexRoute component={Dashboard} />
<Route path="managedata" component={ManageData} />
</Route>
</Router>
), document.body);
注意路由器内的history={history}
。
2.) Link 是否仅使用路径值?正如您在上面看到的,我的主页的名称为“home”,但路径为“/”,我注意到,如果我将链接更改为 Link to="home",那么我会被定向到带有“home”的 URL “在似乎不正确的路径上。
阅读并尝试后......“to”的值应该是路径。它不仅应该是路径,还应该是由 {} 包围的路径。例如,对于上面定义的路由,链接应如下使用:
<Link to={"/"} className="item" >
<i className="home icon"></i>
EXAMPLE
</Link>
<Link to={"/managedata"} className="item" >
<i className="block layout icon"></i>
Manage Data
</Link>
周围的 {} 对我来说产生了重要的影响。否则页面最初不会呈现......我必须在浏览器上再次单击后退和前进才能呈现页面。
3.) 我最终使用上面的“组件”作为 Route 中的 props 之一。我注意到互联网上的许多示例都使用“处理程序”。但是,当我在代码中使用“处理程序”时......它不起作用......它们有什么不同?
https://github.com/rackt/react-router/blob/master/UPGRADE_GUIDE.md
根据上面的链接,这是旧API和新API的区别。
4.) 我已经按照上面的方式定义了我的路线,但是当我使用该页面时,最初不会呈现,但是如果我单击浏览器上的后退按钮,然后单击前进按钮,它就会呈现。我该如何解决这个问题?
我已经在第 2 条的答案中回答了这个问题。)。但基本上,对我来说,我在路径周围添加了 {},它就开始正确渲染。
例如
<Link to={"/managedata"} className="item" >
<i className="block layout icon"></i>
Manage Data
</Link>
关于javascript - React-Router 疑问/问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33301949/
就在几周前,Google 更改了 Android LVL API(许可证验证库)。 在旧 LVL 中,许可证检查基于使用基于每个帐户生成的公钥/私钥进行的许可证验证。新的假设是对每个应用程序库使用公钥
我在代码中创建了下面的两个类,我不确定我是否以正确的 oop 方式创建了它。我将几何类和顶点设置为两个不同的类,或者它们可以是一个父亲和一个 child ,这很好吗?另一个问题是当我调用几何显示方法时
我正在尝试使用 POST 将变量从 try.htm 传递到 chat.php try.htm 的代码是: function yo() { var text = $("#m
我从未使用过代码源控制系统,我从 GitHub 开始,它看起来很棒! 我阅读了指南,我想我可以很好地理解它是如何工作的,而且我已经在使用它了,但我不清楚一些事情:GitHub 是否会自动将原始存储库中
我有这个函数insert() 该函数在表users中插入数据并发送电子邮件。 我需要在创建另一个状态之前终止前一个状态,对吗?因此,我需要将激活链接存储在另一个表中,即 activationLinks
目前正在为差异模块使用带有差异模式的 postgres。现在我计划切换到 oracle。但我听说在 oracle 模式中不存在..是真的吗..如果是这样我该如何迁移? 最佳答案 在 Oracle 中,
我有以下父对象: Context = { ContextModel: Backbone.Model.extend({ //model Code }), ContextLi
在 C++ 中,我了解到变量用于数据存储,对象是类的实例。但在 JavaScript 中,我看到人们将变量称为对象。为什么变量在 JavaScript 中被称为对象。我对此感到困惑。 最佳答案 在 j
我正在浏览有关 Play 的帖子! framework 并遇到了一些讨论 ecommerce 的帖子。由于我是两者的初学者,我想做一个练习。我写下了一些用例和一些要求如下。我会想听听您对此的看法,希望
人们说 asList方法将数组转换为列表并且不复制,因此“aList”中的每个更改都会反射(reflect)到“a”中。因此,在“aList”中添加新值是非法的,因为数组的大小是固定的。 但是,asL
我决定使用 React-Router 来管理使用 REACT JS 的 Meteor JS 应用程序的路由。 我已经让 React-Router “以某种方式”工作,但它有一些负面影响,我想在这里解释
Class Carro { String name String marca String matricula } Class CarroMovel{ String pro1 String prop2
我对如何设置我的 SVN 东西有一些疑问。 首先是我的情况:程序员独自处理大部分内容,不需要外部访问(目前)。 我要: 一个快速的 SVN,最好是免费的。 私有(private) 备份友好 比较轻松
我正在用 MVVM 做我的第一个 C# WPF 项目,我有几个问题。 第一,我想从我的模型中列出一些对象,当我点击其中一个时,屏幕上会显示一个表单(或默认情况下创建的表单)。在我的表单中,绑定(bin
我对mysql有疑问。我可以轻松地将字段限制为某些字符,例如姓氏,以及其他字段,例如包含特定事件的迷你日志,我认为该事件不再是 2 页(或更少的字符)。我知道这是一个相当常见的问题,我看到了很多关于这
我正在尝试实现 HDLC 帧格式类型 3,但我对帧的 Octets/Modulo 8 编码有一些疑问。 首先,HDLC帧是否全部以Octets传输? 一个帧的长度是 'n' 个八位字节是什么意思?请举
我正在开发一个 ASP.Net 电子商务应用程序。我使用 ASP.Net Web 表单。当我完成整个应用程序时,我考虑缓存一些数据,以便提高应用程序性能。 (坏主意......我必须从一开始就考虑到这
我知道下面的代码会产生编译错误: class A{ public : virtual void name(){cout(b); //Error : 'A' is an inaccessible bas
我是一名优秀的程序员,十分优秀!