我有一个项目,其中一半是用类制作的,另一半是用钩子和 Redux 制作的。为此,我使用 Redux Toolkit 创建了一个商店,并使用该组件configureStore()提供它。Provider以非常简单的方式,商店的设置如下:
const userSlice = createSlice({
name: 'user',
initialState: {
user: {}
},
reducers: {
validate: (state, action) => state.user = action.payload
}
})
const store configureStore({
reducer: {
user: userSlice.reducer
}
})
Run Code Online (Sandbox Code Playgroud)
有两个组件 - 一个是新的功能组件,它使用钩子useSelector(),另一个是旧的组件,它是基于类的,但需要使用此 sasme 存储来分派操作。为此,我导入商店并启动
store.dispatch({type: 'user/validate', payload: newUser});
Run Code Online (Sandbox Code Playgroud)
来自类组件。我没有收到任何错误,但什么也没有发生。
我跟踪了 DevTools 的 Redux 插件的输入,我可以看到状态没有改变,所以我认为我的手动调用在dispatch某种程度上是错误的。
我期望发生的是状态更新,这将触发使用的组件的重新渲染useSelector
当在 中键入自定义命令时commands.js,WebStorm 的 linter 表示 和Cypress均未cy定义,并且不提供任何 IntelliSense。两者都在任何文件中完美定义integration。
命令.js
Cypress.Commands.add('command', () => {
cy.get('div');
});
// ESLint: 'Cypress' is not defined.(no-undef)
// ESLint: 'cy' is not defined.(no-undef)
Run Code Online (Sandbox Code Playgroud)
索引.js
import './commands.js'
Run Code Online (Sandbox Code Playgroud)
VSCode 中不会出现此错误。相反, 和Cypress都cy被定义为any。
然而,不管这个错误如何,测试都可以正常工作。
我该怎么做才能让 linter 在自己的文件中识别 Cypress?
对于类赋值,我需要创建一个计算n选择k的函数.我做到了这一点,它适用于小数字(例如6选2),但我应该让它与200选择50,它自然不会.答案太大,R输出NaN或Inf,说:
> q5(200, 50)
[1] "NaN"
Warning message:
In factorial(n) : value out of range in 'gammafn'
Run Code Online (Sandbox Code Playgroud)
我尝试使用日志和指数,但它没有削减它.
q5 <- function (n, k) {
answer <- log(exp( factorial(n) / ( (factorial(k)) * (factorial(n - k)) )))
paste0(answer)
}
Run Code Online (Sandbox Code Playgroud) 我有一个在不同景观上运行的模型,一次同时运行,一次单独运行。我想在小提琴图中绘制结果,但我希望在同一个图中并排运行,并且每个景观都有自己的小提琴(所以2 堆 4 把小提琴)。示例数据:
df1 <- data.frame('means' = 1:6, 'landscape' = rep(c('forest', 'desert', 3)))
df2 <- data.frame('means' = rep(c(1,2), 3), 'landscape' = rep(c('forest', 'desert', 3)))
Run Code Online (Sandbox Code Playgroud)
我希望最终产品看起来如何(MS Paint 中的插图,我是一个糟糕的艺术家):

绿色代表森林,金色代表沙漠。
我正在使用 WebdriverIO 帮助进行一个测试项目。我们在 TS serting 方面遇到了巨大的困难,因为 TS 转译器似乎可以正确解析 TS 模块,但解析在运行时失败。
例如,如果我有一个模块:
// config/config.ts
export const config = {};
Run Code Online (Sandbox Code Playgroud)
然后是一个文件:
// someTest.ts
import { config } from './config/config`;
Run Code Online (Sandbox Code Playgroud)
然后 TS 将正确显示 的类型config。但是,在运行该套件时,我会收到以下消息:
[0-2] 2023-04-18T09:07:54.651Z ERROR @wdio/runner: Error: Cannot find module '/Users/ronnyefronny/projects/wdio-demo/config/config' imported from /Users/ronnyefronny/projects/wdio-demo/test/step-definitions/VoiceflowStepDefs.ts
Run Code Online (Sandbox Code Playgroud)
我的tsconfig.json是:
// config/config.ts
export const config = {};
Run Code Online (Sandbox Code Playgroud)
WDIO 配置的其余部分是按照他们的文档推荐的,但仍然什么也没有。
让我困惑的是,在他们自己的示例样板存储库中,WDIO 将 TS 模块导入为 JS,这让我困惑不已。我在后端和前端项目上使用 TS 已经有几年了,从来不需要导入 TS 模块作为其转译的 JS 模块。
也就是说,而不是
import { config } from './config/config';
Run Code Online (Sandbox Code Playgroud)
会做 …
r ×2
cypress ×1
eslint ×1
exponent ×1
factorial ×1
ggplot2 ×1
javascript ×1
react-redux ×1
reactjs ×1
redux ×1
typescript ×1
violin-plot ×1
webdriver-io ×1
webstorm ×1