我似乎不记得如何编写这个解构模式,你能帮我吗?
假设我有一个这样的对象:
{
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
这个问题在堆栈溢出时被问过很多次,但从来没有用于使用 expo 框架生成的应用程序,这使我的应用程序变得特定并且与其他帖子的回复不兼容。
如何让我的 expo 应用程序出现在另一个应用程序的共享列表中?文档似乎没有解决这个话题。
我计划开发一个应用程序(不确定我是否会使用 PWA),其中包含以下“愿望清单”场景:
用户正在使用 safari、chrome 或任何浏览器浏览他喜欢的网站
他点击该浏览器中的分享按钮,以便将网页网址发送到另一个应用程序
他选择了我的 PWA
此网址已保存在用户的心愿单中
第3步可能吗?
注意:有人在这里问了关于 Android 的完全相同的问题:渐进式网络应用程序可以在 Android 中注册为共享选项吗?
我的问题是一样的,除了我的问题是关于 iOS 的。我找不到任何答案。
让我们创建一个非常简单的钩子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只是一种约定,还是真的能以某种方式打破某些东西?如果可以,你能举个例子吗?
谢谢
让我们考虑一个包含两列的“用户” 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 …
javascript ×2
ecmascript-6 ×1
expo ×1
ios ×1
mysql ×1
react-hooks ×1
react-native ×1
reactjs ×1
sql ×1