我需要 ESP32 上的自动“身份验证”。我想通过蓝牙将特定手机连接到固件内的 ESP 来实现它。例如:我进入 ESP32 蓝牙连接的范围内,手机自动连接到该网络,ESP32 看到这一点,接收所连接设备的 MAC 地址和有关该设备的其他不可变数据(如果有),然后生成哈希值数据并将其与内存中存储的数据进行比较,如果哈希值相同,则将标志设置为 True;如果没有设备或连接了其他设备,则标志的值为 False;
使用 typescript 测试 React 应用程序时出现错误。几个小时后,我意识到错误在于样式的导入方式。我花了几个小时在 gpt 聊天上,但没有多大帮助。当我像这样导入类时:
import * as cls from './Button.module.scss';
concole.log(cls)返回Module {__esModule: true, Symbol(Symbol.toString Tag): 'Module'}
应用程序中没有错误,但与类相关的测试(玩笑)中有错误。
当我使用时:
import cls from './Button.module.scss';
应用程序中弹出错误:
TypeError: Cannot read properties of undefined (reading 'Button')
at Button (http://localhost:3000/main.28f6bcc41182abdc5bde.js:5916:153)
at renderWithHooks (http://localhost:3000/main.28f6bcc41182abdc5bde.js:23669:18)
at mountIndeterminateComponent (http://localhost:3000/main.28f6bcc41182abdc5bde.js:28281:13)
at beginWork (http://localhost:3000/main.28f6bcc41182abdc5bde.js:29804:16)
at HTMLUnknownElement.callCallback (http://localhost:3000/main.28f6bcc41182abdc5bde.js:12347:14)
at Object.invokeGuardedCallbackDev (http://localhost:3000/main.28f6bcc41182abdc5bde.js:12396:16)
at invokeGuardedCallback (http://localhost:3000/main.28f6bcc41182abdc5bde.js:12460:31)
at beginWork$1 (http://localhost:3000/main.28f6bcc41182abdc5bde.js:35668:7)
at performUnitOfWork (http://localhost:3000/main.28f6bcc41182abdc5bde.js:34774:12)
at workLoopConcurrent (http://localhost:3000/main.28f6bcc41182abdc5bde.js:34760:5)
console.log(cls)返回 Object,但通过此导入,测试中没有错误。
webpack.config.js:
const cssLoader = {
test: /\.s[ac]ss$/i,
use: [
// Creates style nodes from JS strings
isDev ? 'style-loader' : MiniCssExtractPlugin.loader,
{
loader: "css-loader",
options: {
modules: {
auto: (resPath: string) => Boolean(resPath.includes('.module.')),
localIdentName: isDev
? '[path][name]__[local]--[hash:base64:8]'
: '[hash:base64:8]'
}
}
},
"sass-loader",
],
}
我没有对此文件进行任何更改。
全局.d.ts:
declare module '*.scss' {
interface IClassNames {
[className: string]: string
}
const classNames: IClassNames;
export = classNames;
}
这里我尝试用类型替换界面,但实际上设计本身保持不变。
笑话.config.ts:
moduleNameMapper: {
'\\.(s?css)$': 'identity-obj-proxy',
},
在这里我还使用了不同的选项来指定文件扩展名,尽管这些更改没有意义
babel.config.json:
{
"presets": [
"@babel/preset-env",
"@babel/preset-typescript",
[
"@babel/preset-react",
{
"runtime": "automatic",
}
]
],
"plugins": [
"i18next-extract"
]
}
我没怎么接触过巴贝尔。
我添加到 Button.tsx 问题 :
import { classNames } from 'shared/lib/classNames/classNames';
import cls from './Button.module.scss';
import { ButtonHTMLAttributes, FC } from 'react';
export enum ThemeButton {
CLEAR = 'clear',
PRIMARY = 'primary'
}
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
className?: string;
theme?: ThemeButton;
}
export const Button: FC<ButtonProps> = (props) => {
const {
className,
children,
theme,
...otherProps
} = props;
return (
<button
type='button'
className={classNames(cls.Button, {}, [className, cls[theme]])}
{...otherProps}
>
{children}
</button>
)
}
我添加到问题 2 Button.module.scss:
.Button {
cursor: pointer;
}
.clear {
padding: 0;
margin: 0;
border: none;
background: none;
outline: none;
}
告诉我如何消除错误并切换到import cls?
我试图通过循环来解决问题,很多次,map就像剥梨子一样简单,但条件说没有循环,只有递归。
代码:
def summa(n):
if n == 1:
return 1
else:
return n + summa(n - 1)
def main():
if not (num := input("введите число: ")):
return
summa(num)
main()
健康)状况:
编写一个程序,将用户输入的数字相加。结束输入的信号应该是空行。在屏幕上显示值的总和(如果用户立即跳过输入,则显示 0.0)。使用递归来解决这个问题。您的程序不应包含循环。
线索:
递归函数的主体应询问用户一个数字,然后决定是否进行另一次递归调用。您的函数不应接受任何参数并返回一个数值。
我正在用 Python aiogram3 编写一个电报机器人来玩测验。我需要测试它在几十/几百个用户的负载下如何工作,发送消息是否会出现延迟等。但我无法在任何地方找到有关如何执行此操作的信息。我发现的唯一信息是 Telegram 提供了以某种方式创建这些测试用户的能力,但没有提及如何做到这一点......


