这是我第一次尝试开玩笑。我正在尝试为我的服务运行“stock”测试,即,feathersjs 在通过 cli 创建服务时为您设置的测试。该服务使用带有回调的异步函数,作为最后一步,我在控制台中进行了一些日志记录。我收到错误:“测试完成后无法记录。您是否忘记在测试中等待某些异步内容?” 我怀疑测试在退出之前不会等待回调完成,因此当回调执行时会在测试完成后尝试记录。
这是库存测试:
it('registered the service', () => {
const service = app.service('order');
expect(service).toBeTruthy();
});
Run Code Online (Sandbox Code Playgroud)
我尝试了文档中提到的一些技术,例如 async/await:
it('registered the service', async () => {
const service = await app.service('order');
expect(service).toBeTruthy();
});
Run Code Online (Sandbox Code Playgroud)
我尝试使用“完成”:每次我都会收到相同的错误消息。
这是执行日志记录的服务代码部分:
amqp.connect(amqp_url, (err0, conn) => {
if(err0) {
throw(err0);
}
conn.createChannel((err1, ch) => {
if(err1) {
throw(err1);
}
ch.assertQueue(orchToOrderQName);
ch.consume(orchToOrderQName, function(msg) {
ch.ack(msg);
service.emit('create', msg);
});
orchToOrderChannel = ch;
});
conn.createChannel((err1, ch) => {
if(err1) {
throw(err1);
}
ch.assertQueue(orderToOrchQName);
orderToOrchChannel = ch;
console.log(" [*] Order …Run Code Online (Sandbox Code Playgroud) 我有一些客户对象,这些对象具有与其关联的一系列信用卡,如下所示:
{
"_id":"5d63e3a32f093f2b5e41ef96",
"firstName": <firstName>,
"lastName": <lastName>,
"email": <email>,
"createdAt":"2019-08-26T13:50:27.409Z",
"modifiedAt":"2019-09-14T20:10:00.257Z",
"paymentMethods":[{
"name": <name>,
"last4": <last4>,
"expirationDate": <expDate>,
"isDefault":false,
"token": <token>
}, {
"name": <name>,
"last4": <last4>,
"expirationDate": <expDate>,
"isDefault":false,
"token": <token>
}, {
"name": <name>,
"last4": <last4>,
"expirationDate": <expDate>,
"isDefault":false,
"token": <token>
}
}
Run Code Online (Sandbox Code Playgroud)
我想在 formik 中设置初始值。像这样:
const INITIAL_VALUES = {
firstName: customer.firstName,
lastName: customer.lastName,
email: customer.email,
phoneNumber: customer.phone,
paymentMethods: ???????
};
Run Code Online (Sandbox Code Playgroud)
我希望能够编辑付款方式信息。我可以绘制表单,以便所有字段都出现正确的次数,但如何使用 formik 设置初始值?
谢谢!
我正在使用 React 和material-ui。我正在使用步进器组件来实现电子商务网站的结账渠道:
<React.Fragment>
{getStepContent(activeStep)}
<div className={classes.buttons}>
{
<Button onClick={handleNext} className={classes.button}>
{activeStep === steps.length - 1 ? 'Place order' : 'Next'}
</Button>
</div>
</React.Fragment>
Run Code Online (Sandbox Code Playgroud)
getStepContent 定义如下:
function getStepContent(step) {
switch (step) {
case 0:
return <ShippingForm cart={cart}/>;
case 1:
return <AddressForm cart={cart}/>;
case 2:
return <PaymentForm cart={cart}/>;
case 3:
return <Review cart={cart}/>;
default:
throw new Error('Unknown step');
}
}
Run Code Online (Sandbox Code Playgroud)
我想在此过程中进行一些验证,例如,除非填写了所有必填字段,否则用户无法越过地址表单。我的问题是“下一步”按钮位于“步骤”组件之外。我对 React 有点陌生,但是 Next 按钮的 handleClick 函数似乎没有好的方法来访问 AddressForm 组件中的数据来进行验证,也没有启动 AddressForm 组件中的某些验证函数。单击“下一步”按钮时进行验证的最佳方法是什么?
我知道已经有这样的问题了。我保证我已经读过它们;我只是不明白。我有一些简单的代码来获取第 3 方 API 服务的令牌:
let tok = '';
const getToken = async () => {
tok = await btt.get();
console.log(tok);
};
getToken();
Run Code Online (Sandbox Code Playgroud)
tok总是undefined在console.log. 我认为重点await是你的代码会暂停,直到特定的承诺得到解决或拒绝;我错了吗?这是get函数:
async get () {
this.paymentGateway.clientToken.generate({
customerId: '5cdc7405da53494ee0f3bafe'
}, (err, result) => {
return new Promise((resolve, reject) => {
if (result.success) {
resolve(result.clientToken);
} else {
reject(result.errors);
}
});
});
}
Run Code Online (Sandbox Code Playgroud)
我已经被这个特定问题困扰了一段时间,并尝试了很多不同的方法。如果有人可以提供帮助,我将不胜感激。
谢谢。
我工作的公司有一个内部扩展的引导课程。我在使用他们提供的复选框时遇到困难,因此我必须深入研究他们的代码。我从这个 HTML 片段开始:
<div class="checkbox XXXbs-checkbox">
<label for="checkbox-id">Some Text</label>
<input class="form-control" id="checkbox-id" name="checkbox-name" role="checkbox" type="checkbox" value="y">
</div>
Run Code Online (Sandbox Code Playgroud)
他们的复选框 css 包含此内容(“XXX”代替了标识我工作的公司的字符串):
.XXXbs-checkbox input[type=checkbox] {
opacity: 0;
margin-left: 4px;
cursor: pointer;
z-index: 1;
width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
不透明度为 0,使上述 HTML 中的实际复选框不可见。同时,他们还有这样的:
.XXXbs-checkbox>label::before {
font-family: XXX-icon;
content: "\e903";
font-size: 32px;
position: absolute;
top: -15px;
left: 0;
}
Run Code Online (Sandbox Code Playgroud)
在标签前放置一个空复选框,如下:
.XXXbs-checkbox>input[type=checkbox]:checked+label::before {
content: "\e904";
color: #000
}
Run Code Online (Sandbox Code Playgroud)
渲染一个带有复选标记的框。
我的问题是,为什么要使用这种方法?为什么要在标签前面绘制一个假复选框,而不是仅设计实际复选框的样式?
reactjs ×2
async-await ×1
css ×1
feathersjs ×1
formik ×1
html ×1
javascript ×1
jestjs ×1
material-ui ×1
node.js ×1
promise ×1