栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

反应链接与标记和箭头功能

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

反应链接与标记和箭头功能

解决您的问题可能为时已晚,您可能已经解决了。但是,这是我的看法:

第一:

<link to="/page">
和之间有什么区别
<a href="page">

  • 从表面上看,您似乎在这里比较苹果和橙子。锚标记中的路径是相对路径,而的标记中的路径
    link
    是绝对路径(没错,我认为
    react-router
    目前尚不支持相对路径)。这造成的问题是说您正在上
    /blah
    ,在单击您的
    link
    将要进入的位置时
    /page
    ,单击
    <a href='page' />
    将您转到
    /blah/page
    。尽管由于您确认了url的正确性,但这可能不是问题,但请注意。
  • 还有一点更深的区别,那就是@Dennis答案(以及他所指向的文档)的附加内容,是当您已经处于与
    link
    要点匹配的路线中时。假设我们当前处于启用状态
    /page
    ,并且
    link
    指向
    /page
    甚至指向
    /page/:id
    ,这不会触发整个页面刷新,而
    <a />
    标记自然会刷新。参见Github上的问题。

我用来解决此问题的一种解决方法是将

state
属性传递给link这样
<link to={{pathname: "/page", state:"desiredState"}}>Page</link>
。然后,可以像下面这样在目标组件的(say
<Page/>
)中检查它
componentWillReceiveProps

componentWillReceiveProps(nextProps){  if (nextProps.location.state === 'desiredState') {    // do stuffs  }}

第二个问题:

React Router v4文档中的奇怪箭头功能…我在普通括号中没有找到任何内容,而不是括号。这些是什么?

箭头功能;@Dennis和@Jaromanda X再次解决了该问题。但是,我要添加三点:

  • 如果
    () => blah
    没有花括号
    {}
    ,则
    =>
    在这种情况下,您将隐式返回任何内容
    blah
    。但是,当您紧接箭头后的花括号时,
    return
    如果您愿意,现在这是您的责任。因此
    () => blah
    (顺便说一句是的同义词
    () => (blah)
    )将
    () => { return blah }
    与not 更相似
    () => { blah }
  • 所以,如果你想返回一个对象会发生什么:
    { blah: blah }
    ; 这就是@Jaromanda X所指的。然后,您将需要执行此操作
    () => ({ blah: blah })
    或仅
    () => ({ blah })
    进行隐式返回,或者可以像这样显式返回
    () => { return { blah: blah } }
  • 我的第三点是将您指向MDN

希望能帮助到你。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418041.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号