javascript - 组件不渲染,但react不显示错误
问题描述
我正在尝试创建一个应用程序,它将数组从最小到最大进行排序,但一开始我遇到了一个错误。React 不会显示单个错误,并且组件也不会呈现。
应用程序.js
import { SortingVizualize } from './SortingVizualize/SortingVizualize';
function App() {
return (
<div className="App">
<SortingVizualize />
</div>
)
}
export default App;
SortingVizualize.jsx
import React from 'react';
// import styles from './SortingVizualize.modules.scss';
export class SortingVizualize extends React.Component {
constructor(props) {
super(props);
this.state = {
array: [],
};
}
componentDidMount() {
this.resetArray();
}
resetArray() {
// I use this method to generate new array and reset
const array = [];
for (let i = 0; i < 100; i++) {
array.push(randomInt(5, 750)); // Min and Max value of number in array
}
}
render() {
const { array } = this.state;
return (
<>
{array.map((value, idx) => (
<div className="array-bar" key={idx}>
{value}
</div>
))}
</>
)
}
}
function randomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
export default SortingVizualize;
解决方案
你state.array
和array
inresetArray
是两个不同的数组,你永远不会更新状态中的一个。
您将需要调用setState
以更新状态
resetArray() {
// I use this method to generate new array and reset
const array = [];
for (let i = 0; i < 100; i++) {
array.push(randomInt(5, 750)); // Min and Max value of number in array
}
this.setState({ array });
}
推荐阅读
- java - ResourceAccessException:POST 请求的 I/O 错误
- c - C 中的 Ackermann 函数 (4, 1) 不计算 - Ackermann with Caching
- json - 如何动态更改图标大小以创建比例符号图
- php - 即使在父范围内未设置,后期绑定闭包变量也可用
- c++ - C++ 使用 any_of 比较向量不起作用
- python - 如何检查函数是否已定义?蟒蛇菜鸟
- angular - 如何在 Angular 中对卡片进行分页?
- javascript - WebStorm2019.2.1 + Flow - 无法在使用 Yarn 工作区的 monorepo 中解析模块“XYZ”
- postgresql - PostgreSQL 12.1 中的语句日志记录。与早期版本相比有什么变化吗?
- url - 使用 URL 重定向站点防止 Telegram 链接预览