No puedo entender por qué recibo un mensaje de error (el caso predeterminado) incluso si hice clic en + - ÷ * ?? ¿No se supone que debe establecer el estado como lo definí en el caso del interruptor? Pensé que establecería el estado
aquí está mi código por favor dime lo que hice mal??
class App extends React.Component { constructor(props){ super(props); this.state={ num:[], sign:"", res:0 } this.handleclick=this.handleclick.bind(this); this.handelAssign=this.handelAssign.bind(this); } handleclick(ele) { this.setState({ num: [...this.state.num, ele] }); this.handelAssign(ele); }; handelAssign = (operator) => { /**operatior could be + - * ÷ */ switch (operator) { case operator === "+": this.setState({ operator: "+" }); break; case operator === "-": this.setState({ operator: "-" }); break; case operator === '*': this.setState({ operator: "*" }); break; case operator === "÷": this.setState({ operator: "/" }); break; default: throw new Error('sorry you must enter a valid operator') }}; render() { const buttons = ["÷", 1, 2, 3, "*", 4, 5, 6,"+", 7, 8, 9, ".", 0, "-"]; let allbuttons=""; return ( <div className="calculation-grid"> <div className="output"> <div className="previous-operand">{this.state.num}</div> <div className="current-operand"></div> </div> <button className="span-two">AC</button> <button>DEL</button> {allbuttons=buttons.map((ele)=><button onClick={()=>this.handleclick(ele) } key={ele}>{ele}</button>)} <button className="span-two">=</button> </div> ); } }Podrías probar con esto:
handelAssign = (operator) => { /**operatior could be + - * ÷ */ switch (operator) { case "+": this.setState({ operator: "+" }); break; case "-": this.setState({ operator: "-" }); break; case '*': this.setState({ operator: "*" }); break; case "÷": this.setState({ operator: "/" }); break; default: throw new Error('sorry you must enter a valid operator') }};Intente eliminar la condición de la caja del interruptor
handelAssign = (operator) => { /**operatior could be + - * ÷ */ switch (operator) { case "+": this.setState({ operator: "+" }); break; case "-": this.setState({ operator: "-" }); break; case "*": this.setState({ operator: "*" }); break; case "÷": this.setState({ operator: "/" }); break; default: throw new Error('sorry you must enter a valid operator') }};