Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用react路由器推送而不是链接导航会导致应用程序不更新并抛出错误,因为缺少操作

使用react路由器推送而不是链接导航会导致应用程序不更新并抛出错误,因为缺少操作
EN

Stack Overflow用户
提问于 2016-08-18 18:32:27
回答 1查看 430关注 0票数 0

我似乎在任何地方都找不到这个问题的直接答案。

环境是React、Redux和React-Router。

一个<Link>将点击到一个没有问题的组件并将其全部呈现出来。

使用this.context.router.push(url)会导致相同的组件出错,并且不会呈现任何内容,但会更新浏览器历史记录和url。

新组件有一个mapStateToProps函数和一个导出连接声明,如下所示:

export default connect(mapStateToProps, { fetchData, fetchOtherData })(ComponentName)

在使用router.push时,导出似乎失败,并且没有为connect的actions部分运行connect,这意味着fetchData从不返回数据,然后应用程序在mapStateToProps内部抛出错误,因为它期望从connect语句中连接的actions文件返回数据。

为什么router.push<Link>的工作方式不同,我应该如何导航到一个新页面,这是一个新的容器组件,需要数据才能呈现该页面?

EN

回答 1

Stack Overflow用户

发布于 2016-08-18 19:39:42

在容器组件中,不建议声明contextTypes,因为它可能会破坏现有的可用提供程序上下文。

所以我建议你这样写,

代码语言:javascript
运行
AI代码解释
复制
import { withRouter } from 'react-router'

const MyComponent =  connect(mapStateToProps, { fetchData, fetchOtherData })(ComponentName)

export default withRouter(MyComponent)

为了更轻松地访问路由器对象,添加了withRouter高阶组件作为新的主要访问方式。与其他React.Component一样,它可用于任何类型的任何React组件(React.createClass、ES2015 HoC类、无状态功能组件)。

有关更多详细信息,请参阅官方documentation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39025217

复制
相关文章
关于在vim中的查找和替换
在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。
休辞醉倒
2019/07/25
26.6K0
在排序数组中查找数字
思路: 2分查找数组中的第一个k: 1. 如果中间数字大于k,那么k只可能出现在前半段 2. 如果中间数字小于k,那么k只可能出现在后半段 3. 如果中间数字等于k: - 如果中间数字的前面不是k,那么中间数字恰好就是第一个k - 如果中间数字的前面是k,那么第一个k肯定在前半段
用户8639654
2021/07/23
4.2K0
idea如何查找替换_pycharm查找替换
在平时敲代码的时候经常碰到,咦,这个变量名好像不太合适,但又写了好多这时候可以怎么办呢? Pycharm/Idea里面给我们准备了替换功能
全栈程序员站长
2022/09/27
2.8K0
idea如何查找替换_pycharm查找替换
mongodb 字符串查找匹配中$regex的用法
官网地址:https://docs.mongodb.com/manual/reference/operator/query/regex/#regex-case-insensitive
庞小明
2018/12/10
6.4K0
在vim和vi中查找和替换字符串
Vim是最受欢迎的命令行文本编辑器。它预装在macOS和大多数Linux发行版上。在Vim中查找和替换文本非常容易。 基本查找和替换 在Vim中,可以使用:substitute(:s)命令来查找和替换文本。 要在Vim中运行命令,必须处于normal模式,这是启动编辑器时的默认模式。要从其他任何模式返回normal模式,只需按 Esc键。 替换命令的一般形式如下: :[range]s/{pattern}/{string}/[flags] [count] 该命令在[range]中的每一行中搜索{patter
入门笔记
2022/06/02
17.5K0
在Excel中通过VBA对Word文档进行查找替换
哆哆Excel
2023/09/09
9820
在Excel中通过VBA对Word文档进行查找替换
pycharm查找与替换_python替换dataframe中的值
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/175276.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
6.6K0
vim中优雅地查找和替换
这篇文章来详细介绍 Vim 中查找相关的设置和使用方法。包括查找与替换、查找光标所在词、高亮前景/背景色、切换高亮状态、大小写敏感查找等。 查找 在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。 Vim查找支持正则表达式,例如/vim匹配行尾的"vim"。需要查找特殊字符需要转义,例如/vim\ 注意查找回车应当用\n,而替换为回车应当用\r(相当于<CR>)。 大小写敏感查找 在查找模式中加入\c表示大小写不敏感查找,
入门笔记
2022/06/02
3.7K0
Vim查找替换
大家好,又见面了,我是你们的朋友全栈君。 1、查找 /pattern :向下查找pattern匹配字符串 ?pattern:向上查找pattern匹配字符串 使用了查找命令之后,使用如下两个键
全栈程序员站长
2022/07/02
3.1K0
python 查找替换
[root@localhost ~]# less txt 123 345 678 accdfesdfdsf [root@localhost ~]# less tihuan.py #!/usr/bin/env python import re wenjian = open('txt','r+') a = wenjian.read() wenjian.seek(0,0) f = (r'123') b =re.findall(f,a) if b != []:    wenjian.write(a.replace(
py3study
2020/01/14
1.5K0
pycharm 查找替换_word查找和替换功能可以实现
ctr(control) + shift + r (replace: 替换)
全栈程序员站长
2022/09/25
1.2K0
pycharm 查找替换_word查找和替换功能可以实现
LeetCode89|在排序数组中查找数字I
这道题之前的用法竟然是使用键值对集合HashMap来做的,现在看有点大材小用吧,时间复杂度为O(n),空间复杂度为O(1)就可以了,这或许就是一点个人的思考吧,不同的时间做法就不一样了
码农王同学
2020/10/14
1.5K0
idea如何查找替换_wps表格怎么查找替换文字
在平时敲代码的时候经常碰到,咦,这个变量名好像不太合适,但又写了好多这时候可以怎么办呢? Pycharm/Idea里面给我们准备了替换功能
全栈程序员站长
2022/09/28
3.2K0
idea如何查找替换_wps表格怎么查找替换文字
python查找替换(一)
 系统有些配置文件,在不同环境下需要对部份配置项进行查找替换,如下的工作就是要找到这些需要改变其值的关键字(即key/value中的key).
py3study
2020/01/15
1.5K0
【剑指Offer】53.1在排序数组中查找数字 I
NowCoder 题目描述 统计一个数字在排序数组中出现的次数 Input: nums = 1, 2, 3, 3, 3, 3, 4, 6 K = 3 Output: 4 解题思路 class Solution { public int search(int[] nums, int target) { if(nums == null || nums.length == 0) return 0; // 二分 i
瑞新
2020/12/07
1K0
查找数组中重复的数字
        题目来源于《剑指Offer》中的面试题3:找出数组中重复的数字。   // 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,   // 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},   // 那么对应的输出是重复的数字2或者3。         解决方法有多种,包括数组排序,哈希表法,以及作者推荐的重排数组法。此处介绍自己的一个做法,以空间换
waylon
2018/03/08
4.3K0
PyCharm使用技巧:查找 替换[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/173196.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/25
1.2K0
PyCharm使用技巧:查找 替换[通俗易懂]
LeetCode - 查找和替换模式
原题地址:https://leetcode-cn.com/problems/find-and-replace-pattern/
晓痴
2019/07/30
8970
【剑指offer|5.在排序数组中查找数字I】
0.在排序数组中查找数字I 1.低效率方法© 通过二分查找找到目标值, 局部时间复杂度O(logN); 然后在目标值左右扫描, 直到分别扫描到第一个3和最后一个3, 因为要查找的数字在长度为N的数组中可能出现N次, 所以局部时间复杂度O(N); 总体时间复杂度O(N),效率很低,和直接遍历扫描数个数的笨方法时间复杂度相同O(N),不可取 int BinarySearch(int* nums, int numsSize, int target) { int left = 0, ri
MicroFrank
2023/04/12
9320
【剑指offer|5.在排序数组中查找数字I】
pycharm查找替换快捷键_python查找指定字符串并替换
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174841.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
2.1K0
pycharm查找替换快捷键_python查找指定字符串并替换

相似问题

Textmate查找regex,替换野生

24

查找并用regex替换

13

Textmate Regex简单查找/替换

23

Textmate Regex查找替换帮助

15

PHP:查找并用regex替换

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档