import React,{ Component } from 'react';
import { connect } from 'react-redux';
import { itemid } from '../actions/action';
class DetailPage extends Component{
componentWillUpdate(){
this.props.dispatch(itemid([this.props.params.item,`${this.props.params.item}${this.props.params.id}`]))
}
render(){
const { dispatch } = this.props;
return(
<div>
{this.props.params.id}
</div>
)
}
}
function selectstate(state){
return{
state
}
}
export default connect(selectstate)(DetailPage)
//{this.props.params.item}来自反应路由器(路径('/detail/item/id'))
为什么我的调度是无限循环,直到出错(超过最大调用堆栈大小)
您正在对< code>componentWillUpdate进行调度。所以每次你更新状态,你都是在更新状态。永远不要修改componentWillUpdate:https://Facebook . github . io/react/docs/component-specs . html # updating-componentWillUpdate中的状态
顺便说一下,在< code > componentWillReceiveProps 中这样做可能会做同样的事情,因为您的状态(来自redux存储)将作为< code>props进入。
问题是为什么更新后还要做派单?是因为下面的功能设置状态吗?
如果您希望在设置特定状态后进行调度,那么您可以使用< code > shouldcomponentdupdate 来阻止除该状态之外的更新。但这感觉像是这种配置的副作用。我认为最好在设置状态的同时调度事件,或者作为状态的回调。
我正在使用我岳父让我建立的一个网站作为学习React的借口。我不是一个天生的JavaScript开发人员(更喜欢后端),我知道我下面的代码中可能有一些递归元素,但我就是看不到。谁能告诉我我做错了什么?
对于我的节点应用程序,我有一个运行在Debian上的服务器(app.js),它使用socket.io向我的客户机(index.html)提供html和websocket数据。我正在尝试制作一个回合制的HTML5多人游戏。 在使用socket.emit()/io.emit()和socket.on()成功执行了多次数据传输后,我的服务器在socket.emit()调用上崩溃,出现错误 “events.
问题内容: 我无法终生弄清楚为什么我会出错: 超过最大呼叫堆栈大小 运行此代码时。如果我注释掉: 错误消失了。我什至已注释掉其他电话,以尝试缩小问题的出处。 代码(删除了额外的功能): 问题答案: 由于此循环: 您正在从render调用getTabs方法,并在其中进行操作,将触发重新渲染,再次是getTabs ..... 无限循环 。 从方法中删除,它将起作用。 另一个问题在这里: 我们需要为on
索引.js Questionlist.jsx 问题.jsx Scorebox.jsx 结果. jsx
今天,我试图在CMD中使用()创建新的react app,结果出现了这个错误: 此外,如果我试图安装此文件夹中的任何包,如,安装将会被卡住,我也试图更新我的create-react-app,但没有任何变化。我通过在而不是在 中创建react应用程序来解决这个问题,所以我的问题是:为什么我不能在长路径中创建react应用程序,比如为什么需要在中创建?
如果用户未登录,我尝试将用户重定向到“TrapPage”。 这是我的代码: 当我将函数requireAuth放在onEnter上时,控制台给我一个错误: 我是一个反应迟钝的人,请耐心点:) 我的代码有什么问题?