【发布时间】:2020-07-25 11:33:08
【问题描述】:
首先抱歉,如果我的英语不完美,我学习了:x
我的反应有问题,我的所有组件都运行了两次,例如如果我写“console.log('test');”在渲染函数中,所以我在控制台中看到了两次“测试”...
只是为了指定,当我为组件使用函数并且在类中所有默认方法(构造函数,渲染,componentDidMount,...)在创建或修改组件时运行两次时,我没有这个问题(不破坏组件WillUnmount 已运行一次)。
问题不在于我的代码,我尝试创建一个新应用程序(使用 create-react-app)并通过一个类更改功能,但结果是相同的(即使在另一台计算机上)
创建项目后我唯一更改的文件(我只更改了第 1 行、第 5 行和第 7 行):
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
class App extends Component {
render() {
console.log('test');
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
}
export default App;
我也指定了,我现在已经读过 react prefer 函数,类已被贬值,但我目前正在学习 react,我喜欢探索所有可能性 :)
感谢您的帮助;)再次为我的英语感到抱歉:x
编辑:
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
class App extends Component {
constructor() {
super()
console.log("test")
}
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
}
export default App;
在这种情况下,console.log() 也运行了两次,但是当我们进行更新时构造函数没有运行,所以这不是问题
【问题讨论】:
标签: javascript reactjs