小编Vin*_*ent的帖子

解构 JavaScript 对象时如何只选择几个字段?

我似乎不记得如何编写这个解构模式,你能帮我吗?

假设我有一个这样的对象:

{
  id: 'po_495743057439095',
  object: 'payout',
  amount: 18560,
  arrival_date: 1576195200,
  automatic: true,
  balance_transaction: 'txn_32472309478903284',
  created: 1575774863,
  currency: 'eur',
  description: 'STRIPE PAYOUT',
  destination: 'ba_329047329048323',
  failure_balance_transaction: null,
  failure_code: null,
  failure_message: null,
  livemode: true,
  metadata: {},
  method: 'standard',
  source_type: 'card',
  statement_descriptor: null,
  status: 'in_transit',
  type: 'bank_account',
}
Run Code Online (Sandbox Code Playgroud)

(这实际上是来自 Stripe API 的一个对象)。

我想将这个对象推送到我的自定义数组中,但只保留 5 个字段。

我可以:

arr.push({
  id: myObject.id,
  object: myObject.object,
  amount: myObject.amount,
  arrival_date: myObject.arrival_date,
  created: myObject.created
})
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有任何语法可以帮助我以更短的方式实现相同的目标。

基本上我很确定有一种语法可以做到这一点,只需要编写一次“myObject”一词,编写每个键名称一次,并且不创建临时变量,但我不记得如何实现。

我不是在询问编写特定的函数,我不需要帮助。我只是问是否有内置的解构语法可以做到这一点,因为我很确定有,但我找不到它,尽管之前搜索了相当长的时间。

编辑:

我正在寻找的答案就在这里:Elegant way to copy a part of an object

javascript destructuring ecmascript-6

7
推荐指数
1
解决办法
5179
查看次数

如何让我的 expo 应用出现在另一个应用的分享列表中?

这个问题在堆栈溢出时被问过很多次,但从来没有用于使用 expo 框架生成的应用程序,这使我的应用程序变得特定并且与其他帖子的回复不兼容。

如何让我的 expo 应用程序出现在另一个应用程序的共享列表中?文档似乎没有解决这个话题。

分享菜单

react-native expo

7
推荐指数
1
解决办法
795
查看次数

渐进式网络应用程序可以在 iOS 上注册为共享选项吗?

我计划开发一个应用程序(不确定我是否会使用 PWA),其中包含以下“愿望清单”场景:

  1. 用户正在使用 safari、chrome 或任何浏览器浏览他喜欢的网站

  2. 他点击该浏览器中的分享按钮,以便将网页网址发送到另一个应用程序

  3. 他选择了我的 PWA

  4. 此网址已保存在用户的心愿单中

第3步可能吗?

注意:有人在这里问了关于 Android 的完全相同的问题:渐进式网络应用程序可以在 Android 中注册为共享选项吗?

我的问题是一样的,除了我的问题是关于 iOS 的。我找不到任何答案。

ios ios-sharesheet progressive-web-apps

6
推荐指数
1
解决办法
758
查看次数

React 钩子真的必须从“使用”开始吗?

让我们创建一个非常简单的钩子useDouble,它返回一个数字的双精度:

export default function useDouble(nb) {
  return nb * 2;
}
Run Code Online (Sandbox Code Playgroud)

文档(https://reactjs.org/docs/hooks-custom.html#extracting-a-custom-hook)内容如下:

自定义 Hook 是一个 JavaScript 函数,其名称以“use”开头,并且可以调用其他 Hook

但如果我useDouble改为double,它仍然有效。我什至尝试从double钩子中调用其他钩子,它仍然有效。

演示:https : //codesandbox.io/s/laughing-gareth-usb8g?file=/ src/ components/WithUseDouble.js

所以我的问题是:命名钩子useXxxxx只是一种约定,还是真的能以某种方式打破某些东西?如果可以,你能举个例子吗?

谢谢

javascript reactjs react-hooks

6
推荐指数
2
解决办法
567
查看次数

当在数据库中添加具有“ nullable”属性和默认值的新列时,如何在代码中保留相同的“ INSERT INTO”语句?

让我们考虑一个包含两列的“用户” MySQL表:

  • 自动增量编号
  • 全名
CREATE TABLE `user` ( `id` INT NOT NULL AUTO_INCREMENT, `fullname` TEXT NOT NULL, PRIMARY KEY (`id`));
INSERT INTO `user` VALUES (NULL, 'John Smith');
INSERT INTO `user` VALUES (NULL, 'James Miller');
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中随处添加用户的地方,都有以下代码:

INSERT INTO `user` VALUES (NULL, <name to insert>);
Run Code Online (Sandbox Code Playgroud)

现在,如果我添加一个默认值为0的'is_admin'布尔值,如下所示:

ALTER TABLE `user` ADD COLUMN `is_admin` TINYINT NOT NULL DEFAULT 0;
Run Code Online (Sandbox Code Playgroud)

如果我使用运行查询VALUES (NULL, <name to insert>),我希望MySQL能够理解我希望新用户将is_admin设置为0,但这是行不通的:

Error Code: 1136. Column count doesn't match value count at row 1
Run Code Online (Sandbox Code Playgroud)

我以为是因为“ NOT NULL”标志,所以我将“ ADD COLUMN”语句从“ NOT …

mysql sql

0
推荐指数
1
解决办法
44
查看次数