【发布时间】:2020-08-02 15:42:56
【问题描述】:
今天我完成了我的第一个 React 应用 - 计算器。
我虽然最好让 App.js 干净并将所有逻辑功能放在单独的文件 Logic.js 中,以及所有设计功能(根据数字或点击动画按钮的长度更改输出字体大小) 例如 Effects.js。
当我获取函数时出现问题,将它们放在新文件中(当然导出它们并在 app.js 中导入它们)。
错误说 setNumber(当我想使用状态时调用的方法),
number.firstNumber(firstNumber 状态,保存第一个点击的数字),
并且我在这个文件中调用的每个状态(函数或条件)都没有定义,所以这意味着这个文件无法访问 App.js 状态。有什么办法可以让这些功能分开,而不必重新构建整个应用程序,这样我就可以实现干净的代码?
App.js 创建我在这些函数中使用的状态
const [number, setNumber] = useState({
firstNumber: "",
secondNumber: "",
operator: "",
result: "0",
displayed: "0",
cButton: "AC",
cButtonCheck: false,
numToReset: false,
sizeOfOutput: "1em",
isOrange: false
});
未定义 setNumber 错误的新文件中的函数示例
function turnOnOrange(operator) {
if (number.isOrange === false) {
setNumber(prevState => ({
...prevState,
isOrange: true,
whichOrange: operator
}));
operator.className = "orangeActivated";
}
}
谢谢,链接让你可以看到整个代码
【问题讨论】:
标签: javascript reactjs function state