gpt4 book ai didi

javascript - React App - 我的警告窗口出现两次

转载 作者:行者123 更新时间:2023-12-05 08:37:13 25 4
gpt4 key购买 nike

我不明白为什么会这样 - 我有一个应用程序,当按下按钮以显示一个集合中越来越多的复活节彩蛋品牌列表时,该应用程序会递增和递减计数器。当计数器达到集合中鸡蛋的最大数量时,我希望出现一个弹出窗口,提示“已达到限制”。弹出窗口出现,但当我单击确定时,相同的弹出窗口再次出现!

React 组件是否在某处被调用了两次?

如果有人有任何想法,将不胜感激。

App.js


import logo from './logo.svg';
import Counter from './Counter';
import EggList from './EggList';
import './App.css';

function App() {

return (
<div className="App">
<Counter></Counter>
</div>
);
}

export default App;

Counter.js


import React from 'react';
import EggList from './EggList';

class Counter extends React.Component {

constructor(props) {
super(props)
this.state = {
counter: 0
}

this.increment = this.increment.bind(this)
this.decrement = this.decrement.bind(this)

}

increment(){
this.setState({ counter: this.state.counter + 1 })
};

decrement(){
this.setState({ counter: this.state.counter - 1 })
};

render() {
const { counter } = this.state;
var eggsArray = [
'Lindt',
'Creme Egg',
'Oreo',
'Cadburys',
'Mars',
'Aero'
];
return (
<div>
<h1 id="counter">{counter}</h1>
<button type="button" id="decrement" onClick={this.decrement}>Decrement</button>
<button type="button" id="increment" onClick={this.increment}>Increment</button>
<EggList eggs={eggsArray} counter={counter}></EggList>
</div>
)
}
}

export default Counter;

Egglist.js


import React from 'react';

class EggList extends React.Component {
render(){
var eggs = [];
var upperlimit = false;
if(this.props.counter < 0){
window.alert("Warning: Counter cannot be less than zero");

}
for(var i = 0; i < this.props.counter; i++){
console.log("Counter: " + this.props.counter);
console.log("Total eggs: " + this.props.eggs.length);
if(this.props.counter > this.props.eggs.length){
upperlimit = true;
break;
}
eggs.push(<li key={i.toString()}>{this.props.eggs[i]}</li>);
}
if(upperlimit === true){
console.log('upperlimit');
window.alert("Warning: Counter exceeds number of eggs");

}



return (


<ul className="egg-list">
{eggs}
</ul>
)
}
}

export default EggList;



谢谢,

罗伯特

英国伦敦

最佳答案

你的 index.js 有标签严格模式吗?如果是这种情况,请将其删除并重试。

ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);

试试这个:

ReactDOM.render(
<App />,
document.getElementById('root')
);

关于javascript - React App - 我的警告窗口出现两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66263996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com