免责声明:一般来说,我对Vue,JavaScript和Web框架还很陌生。
我正在尝试使用Jest和vue-test-utils熟悉一些基本的单元和组件测试。
我已经阅读了vue-test-utils' mount()和shallowMount()上的文档
,但是我不确定何时在另一个上使用它们(它们看起来非常相似)。
根据有关文档shallowMount():
与mount一样,它会创建一个包装器,其中包含已安装和渲染的Vue组件,但具有残存的子组件。
“存根子组件”到底是什么意思?可以mount()和shallowMount()可以互换使用吗?
使用 Vuex 存储操作来执行相关的异步操作(例如 GET 请求)而不实际修改存储的状态是一个好习惯吗?
我有一个 Vuex 商店。我们称其为主机吧。它包含一个对象作为其状态,并带有一些获取器来检索各种形式的状态以及一些突变来修改所述状态。但是,当涉及到操作时,我会对主机对象执行某些异步请求,并将这些请求作为参数传递给操作。例如,可以启用或禁用主机。因此,我有一个 action hostEnable(host),它调用 Axios GET 请求,该请求仅以 OK (200) 响应。
const getDefaultState = () => {
return {
host: {...}
}
};
export const state = getDefaultState();
const getters = {
getHost: (state) => {
return state.host;
},
...
};
const mutations = {
setHost: (state, host) => {
state.host = host;
},
...
};
const actions = {
fetchHost ({commit}, hostId) => {
api.get(hostId)
.then(({data}) => {
commit(setHost, data);
})
.catch(error => …Run Code Online (Sandbox Code Playgroud) 我有一个Vuex getter,可以从应用程序的各个组件中调用。但是,我发现一个案例在调用getter之前需要稍微复杂一点的逻辑,所以我使用了Vuex Action。如何从操作中使用参数调用getter函数?
我使用常量来命名getter / mutations / actions,因此我的getter定义如下:[GETTER_NAME]: state => param => { return {/.../} }。在我的Vuex动作中,我想调用getter如下getters[GETTER_NAME](someParam)。但是,这似乎不起作用(即使getters[GETTER_NAME]返回一个函数)。
从组件调用getter可以很好地工作。我只是创建computed函数并使用...mapGetters({getterName: GETTER_NAME})。要使用参数调用getter,我只是说getterName(someParam)。
[GETTER_NAME]: state => param=> {
return {/.../}
},
[ACTION_NAME]: (context, param) => {
getters[GETTER_NAME](param)
? context.commit(MUTATION_X, param)
: context.commit(MUTATION_Y, param);
}
Run Code Online (Sandbox Code Playgroud)
调用getter,但是,它返回函数而不传递参数。我做错了什么还是我误解了Vuex中吸气剂的工作方式?
如何以某种方式获取 Apple Pay 支付令牌的示例(如此处所述),而不实际使用 Apple 设备向 Apple 请求付款?
我正在创建一个端点,该端点将接受 Apple Pay 支付令牌,该令牌与请求 Apple 付款的设备上收到的令牌完全相同。然而,它是一个二进制数据,因此必须将其解码为我认为的普通 json 对象。这个 json 对象的格式/结构是什么?
从 Checkout.com 关于 Apple Pay 的文档(此处)中,我假设解码后的 json 对象看起来像这样(尽管他们将其标记为“示例”,所以我不能确定):
{
"type": "applepay",
"token_data": {
"version": "EC_v1",
"data": "t7GeajLB9skXB...",
"signature": "MIAGCSqGSIb3DQEHAq...",
"header": {
"ephemeralPublicKey": "MFkwEwYHKoZIzj...",
"publicKeyHash": "tqYV+tmG9aMh+l/K6cicU...",
"transactionId": "3cee89679130a4b2617c..."
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,为简洁起见,上述字段中的数据已被缩短。
Apple 向请求付款的设备发送的确切对象/数据是什么?
任何帮助将不胜感激!
运行php artisan migratethrows Undefined property: stdClass::$migration,导致没有创建表。
我在用sqlite。我的.env只是有:DB_CONNECTION=sqlite。我创建了一个config/database.php包含:
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => storage_path('database.sqlite'), // Make sure this file exists.
'prefix' => '',
],
],
Run Code Online (Sandbox Code Playgroud)
我有一个包含两列的简单迁移。
到目前为止,我已经尝试了从创建新的 Composer 项目到重新安装 PHP 的所有方法。
完整的异常:
() at C:\Development\Repositories\phpchat\vendor\illuminate\database\Query\Builder.php:2360
Laravel\Lumen\Application->Laravel\Lumen\Concerns\{closure}() at C:\Development\Repositories\phpchat\vendor\illuminate\database\Query\Builder.php:2360
Illuminate\Database\Query\Builder->pluckFromObjectColumn() at C:\Development\Repositories\phpchat\vendor\illuminate\database\Query\Builder.php:2332
Illuminate\Database\Query\Builder->pluck() at C:\Development\Repositories\phpchat\vendor\illuminate\database\Migrations\DatabaseMigrationRepository.php:53
Illuminate\Database\Migrations\DatabaseMigrationRepository->getRan() at C:\Development\Repositories\phpchat\vendor\illuminate\database\Migrations\Migrator.php:90
Illuminate\Database\Migrations\Migrator->run() at C:\Development\Repositories\phpchat\vendor\illuminate\database\Console\Migrations\MigrateCommand.php:71
Illuminate\Database\Console\Migrations\MigrateCommand->handle() at n/a:n/a
call_user_func_array() at C:\Development\Repositories\phpchat\vendor\illuminate\container\BoundMethod.php:32
Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() at C:\Development\Repositories\phpchat\vendor\illuminate\container\BoundMethod.php:90
Illuminate\Container\BoundMethod::callBoundMethod() at C:\Development\Repositories\phpchat\vendor\illuminate\container\BoundMethod.php:34
Illuminate\Container\BoundMethod::call() at …Run Code Online (Sandbox Code Playgroud)