Reactjs 反应:为什么类方法在开发中呈现,而它';s";“未定义”;在生产中?

Reactjs 反应:为什么类方法在开发中呈现,而它';s";“未定义”;在生产中?,reactjs,Reactjs,我有一个类组件,在这个组件上,我定义了一些函数组件作为方法 导出默认类IssueBrowser扩展React.Component{ 构造函数(props){/*stuff*/} 发行列表=(道具)=>{ console.log(“here”);//永远不会调用它 如果(this.state.issues.length>0){ 返回( {this.state.issues.map(issue=> )} ) }else如果(!this.state.noResponseFromServer){ 没

我有一个
类组件
,在这个组件上,我定义了一些
函数组件
作为方法

导出默认类IssueBrowser扩展React.Component{
构造函数(props){/*stuff*/}
发行列表=(道具)=>{
console.log(“here”);//永远不会调用它
如果(this.state.issues.length>0){
返回(
    {this.state.issues.map(issue=> )}
) }else如果(!this.state.noResponseFromServer){ 没有问题,你运气不好吗? }否则{ 返回null; } } {/*更多内容…*/} render(){ 返回( {console.log(this.IssueList)} ) } }
如果我们关注
render()
方法,下面是一些注意事项:

  • console.log()
  • 在开发过程中,
    IssueList
    实际呈现(因此它可以工作)
  • 在生产中,
    此.IssueList
    似乎是
    未定义的
问题:

  • 我真的需要把
    这个.IssueList
    放在其他地方吗?比如说,在主要组件之外
  • 还有一个附带问题,从技术上讲,
    this.IssueList
    是什么?
    IssueBrowser
    类上的方法
这是我的生产版本中的错误:

/*
//注释以避免x轴滚动。。。
错误:缩小反应错误#130;
参观https://reactjs.org/docs/error-decoder.html?invariant=130&args[]=未定义和参数[]=
获取完整消息,或使用非小型开发环境获取完整错误
以及其他有用的警告。
...
从链接:
元素类型无效:应为字符串(用于内置组件)或
一个类函数(用于复合组件),但得到:未定义。
*/
欢迎任何帮助。

来自

注意:始终以大写字母开头组件名称。 React将以小写字母开头的组件视为DOM标记。例如,表示一个HTML div标记,但表示一个组件,需要欢迎才能进入范围

this.IssueList
明确指向
IssueList
。但它呈现为DOM标记,因为名称以小写字母开头,而小写字母不存在

It should be     <IssueList /> and not <this.IssueList/>.
应该是,而不是。

开发模式总是在非严格模式下运行。这就是它在那里工作的原因。但生产模式总是在严格模式下运行。因此,它将不起作用。

类只是es6语法suger,经过编译后才显示其just函数,然后this.IssueList就是具有函数值的just属性。为什么它仅在生产构建中未定义?这是有意义的。我会重新考虑,看看这会不会改变什么。这是在我的开发环境下工作,虽然。。。只需执行
,似乎非常方便,有解决方法吗?或者我必须将
移出我的组件吗?在我的开发环境中,我可以做
,而不必通过道具传递一堆状态,这就是我最初希望这样做的原因。我认为,您应该在类外定义单独的组件IssueList和IssueListItem,以使代码更加枯燥。