【发布时间】:2020-07-23 02:41:54
【问题描述】:
我有最简单的应用程序。有一个父 <App> 组件和一个子 <MyChildOne> 组件。两者都是基于类的。
谁能解释一下为什么React会两次调用child <MyChildOne>的render函数?
这是我的<App> 代码:
import React from "react";
import "./App.css";
import MyChildOne from "./MyChildOne.js";
class App extends React.Component {
render() {
return (
<div>
<MyChildOne />
</div>
);
}
}
export default App;
这是我的<MyChildOne> 代码:
import React from "react";
class MyChildOne extends React.Component {
counter = 0;
render() {
this.counter = this.counter + 1;
console.log(
"Code has called MyChildOne and this.counter has value: " + this.counter
);
return <h1>Hello, {this.counter}</h1>;
}
}
export default MyChildOne;
浏览器中的输出是这样的:
你好,1
这是在控制台中记录的内容:
代码调用了 MyChildOne,this.counter 的值为:1
代码调用了 MyChildOne,this.counter 的值为:2
很明显,React 调用了 <MyChildOne> 的渲染函数两次——但我不明白为什么!!!!
这对我没有好处,因为我想将 <App> 到 <MyChildOne> 的一系列事物作为道具传递,并且我希望 <MyChildOne> 为每个“事物”成员呈现一个 <h1>那个数组。我不希望 <h1>s 被渲染两次!
【问题讨论】:
-
你的代码很好,它调用了一次,也许你渲染了共同的父级。
-
谢谢你的回答,丹尼斯。
标签: javascript reactjs components render