使用标记模板文字传递更多参数

2023-11-27

我正在与样式组件并使用其标记模板文字语法生成组件,例如:

const Button = styled.button`
  background-color: papayawhip;
  border-radius: 3px;
  color: palevioletred;
`

在一种情况下,我需要调用一个基于断点生成媒体查询的函数and传递要包含在其中的 css 标记模板文字。

例如:

media(12)`
   background-color: papayawhip;
`

媒体功能可能看起来像这样:

const media = mapValues(width => ({ css: (...args) => css`
  @media (min-width: ${width}rem) {
    ${css(...args)}
  }
`}));

是否可以同时传递值和标记模板文字,或者我是否以错误的方式处理此问题?


标记模板文字没有魔法,你只需要从你的函数返回另一个函数media(12) call:

function media(twelve) {
  return function(stringParts, ...interpolationValues) {
    return …
  }
}

或使用箭头函数

const media = (twelve) => (stringParts, ...interpolationValues) => …;

被称为

media(12)`firstPart ${13} secondPart`
// or equvialently
media(12)(["firstPart ", " secondPart"], 13)

但是,如果您不需要进行任何插值而只想接收字符串,则使用参数编写函数可能会更容易

function media(twelve, string) {
  return …;
}

并将其称为

media(12, `
  templateString
`)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用标记模板文字传递更多参数 的相关文章

  • 使用 Javascript 实现 Tinder 风格的拖放手势?

    我正在尝试找出哪些库可以用于仅使用 Javascript 的 Tinder 风格拖放手势 需要创建一个响应拖动手势的 HTML 元素 触摸并按住时 允许元素跟随用户的手指移动 当用户移开手指时 该元素会 动画回到原来的位置 如果元素在释放时
  • 如何在React-Native中选择ListView的一项?

    我是 React Native 的新手 我想使用 ListView 选择一项 当我第一次按下 item 时 ListView renderRow 被调用 但终究不起作用 我该如何修复这个错误 我的问题出在哪里 我写了一个演示here htt
  • 如何使用 Underscore 获取 JavaScript 数组中的重复项

    我有一个数组 我需要重复的项目并根据特定属性打印这些项目 我知道如何使用 underscore js 获取唯一项目 但我需要找到重复项而不是唯一值 var somevalue name john country spain name jan
  • 如何根据另一个动态下拉列表的值创建动态下拉列表?

    我有一个下拉菜单 当我选择一个选项时 它会创建一个动态下拉菜单 到目前为止 一切都很好 但我想创建另一个动态下拉列表 现在基于另一个动态下拉列表的值 我该怎么做 第一个动态下拉列表有效 我猜第二个无效 因为动态变量 div 没有静态 ID
  • 粉碎一个元素,向随机方向发送碎片

    我试图 粉碎 一个元素 例如 一个图像 并将其碎片朝随机方向飞行 当碎片到达目的地时 即x距离 以像素为单位 它们变成原始图像的较小版本 jQuery UI 的explode http api jqueryui com explode ef
  • 强制执行 show.bind

    我有一个包含数据的表 当从另一个视图触发事件时 我希望视图检查 show bind 语句 问题是该事件没有更改当前视图中的任何数据 foo html tr p canBeRemoved p tr 我正在使用 EventAggregator
  • 按日期对 JSON 进行排序

    我知道这一定相对简单 但我有一个 JSON 数据集 我想按日期排序 到目前为止 我每次都会遇到问题 现在我将日期存储为this lastUpdated 如果有帮助的话 我可以访问 jquery 但我意识到 sort 是本机 JS 提前致谢
  • 如何垂直打印数组中的字符串元素? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个数组 我想垂直打印每个元素 例如 myArr abc def ghi 输出应该是 a d g b e h c f
  • toJSON() 和 JSON.Stringify() 之间的区别

    如果您需要读取或克隆模型的所有数据属性 请使用其 toJSON 方法 此方法返回属性的副本作为 对象 尽管有其名称 但不是 JSON 字符串 当 JSON stringify 为 使用 toJSON 方法传递一个对象 它将返回的字符串化 t
  • 标记内的值发生变化时调用函数

    JavaScript 有没有什么方法可以在段落标记的值更改时调用函数 概述 HTML p 00 00 p
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • 它们是“相同的”吗?代码大战

    这是完整的问题描述 给定两个数组 a 和 b 编写一个函数 comp a b Clojure 中的 compSame a b 来检查这两个数组是否具有 相同 元素以及相同的重数 这里 相同 意味着 b 中的元素是 a 平方中的元素 无论顺序
  • jQuery 如何通过不同的列值计算表中的行数

    如何按表列计算不同的表行 Example table thead tr th NAME th th TECHNOLOGY th tr thead tbody tr td john td td jQuery td tr tr td mark
  • 酶无法通过道具找到组件

    我正在使用 Enzyme 测试一个组件 如下所示
  • Hooks setState 总是落后一步

    我使用了 useState 钩子 应该在每次下拉按钮的值发生变化时触发设置状态方法 在钩子中 但设置状态总是落后一步 我已经看到了使用基于类的组件的传统 setState 方法的解决方案 但是如何使用钩子解决此问题useState
  • 如何更改 Vuetify 日历日期格式

    我正在尝试在以下 Vuetify 日历上启用输入事件 https github com vuetifyjs vuetify blob master packages docs src examples calendars complex e
  • 加载 angularjs 路由后运行 javascript 代码

    我需要在 angularjs 加载路线后显示警报 显示警报的代码位于 angularjs 异步加载的视图中 视图加载后 我希望它能够运行 但它没有 我知道我可以广播并告诉它稍后运行等 但我需要一个更通用的解决方案 假设您正在谈论基于以下内容
  • Antd select 元素:如何禁用输入?

    我正在尝试使用模式 multiple 的选择元素 我希望禁用输入 这意味着用户只能在现有选项之间进行选择 而不能输入文本 我该怎么做呢 我的元素 import Select from antd import antd dist antd c
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1
  • 使用 Three.js 中的设备方向控件进行对象旋转

    我正在迈出使用 JavaScript 进行编码并使用 Three js 的第一步 我正在尝试 Threejs org 的这个例子 http trijs org examples misc controls deviceorientation

随机推荐

  • Math.Round 与 String.Format

    我需要将双精度值四舍五入为 2 位数字 什么是更好的 String Format 0 0 00 123 4567 123 46 Math Round 123 4567 2 123 46 Math Round double digits 数字
  • 改善 Flexbox 生产线的平衡

    举例来说 假设我有一个弹性盒 其中每个元素都包含一个图像 在这种情况下 Flexbox 的目的是均匀分布它们 看起来很容易 我们来试试吧 flex width 350px display flex flex wrap wrap flex g
  • javascript:检测滚动结束

    我有一个div层与overflow set to scroll 当滚动到底部时div 我想运行一个函数 接受的答案从根本上来说是有缺陷的 现已被删除 正确答案是 function scrolled e if myDiv offsetHeig
  • 使用动态字段名称更新模型实例

    我想做的很简单 f Foobar objects get id 1 foo somefield bar somevalue f foo bar f save 这不起作用 因为它尝试更新 f 对象的 foo 字段 该字段当然不存在 我怎样才能
  • 创建 MySQL 触发器的 SQL 语法错误

    我尝试创建触发器 CREATE TRIGGER aster users2 after update ON aster users FOR EACH ROW BEGIN update event set flag 1 where id 1 E
  • 使用 Unity 解决命名依赖关系

    我有一个具有 2 个依赖项的服务 一个存储库和一个网关 短信 我需要解析该服务的 2 个不同版本 它们仅在传递给网关的参数之一上有所不同 代码简化如下 public interface IService string DoSomething
  • 将任意字符串映射到 RGB 值

    我有一大堆任意自然语言字符串 对于我的工具来分析它们 我需要将每个字符串转换为唯一的颜色值 RGB 或其他 我需要颜色对比来取决于字符串相似性 字符串与其他字符串越不同 它们各自的颜色应该越不同 如果我总是为同一字符串获得相同的颜色值 那就
  • LoadString 仅在我没有英文字符串表时才有效

    我希望能够以编程方式修改应用程序的语言 或者至少使用 控制面板 gt 区域和语言选项 gt 格式 中指定的语言 如果我添加一个英语字符串表 为其制作一个法语和德语副本 然后删除英语字符串表 我可以以编程方式在加载法语和德语字符串之间切换 如
  • JavaScript 中的大数字字符串

    当我执行以下操作时 alert 2053716830872415770228778006271971120334843128349550587141047275840274143041 toString 我得到 2 053716830872
  • Google App脚本从网站提取数据

    所以我正在写一个脚本来查看在 Google 信息页上完成审核并更新谷歌电子表格 我发现html中保存这个值的行是 span class A7a 103 span 我只需要知道 URL 和 html 代码就可以从页面中提取内容 Use var
  • 如何包含 MVC 部分控件中的 css 文件?

    我正在使用 ASP NET MVC 并且有一个需要包含特定 CSS 和 JS 文件的部分控件 有没有办法让父页面渲染script and link页面 head 部分中的标签 而不是仅仅在部分控件中内联渲染它们 为了澄清我想要包含文件的控件
  • 类型暗示返回 self 的类方法的返回值?

    正如问题所描述的 我想输入提示aself返回 类似 class A def foo self gt what goes here do something return self 我已经尝试过的事情 将其注释为A 添加from future
  • 如何更改内核 I/O 缓冲区大小

    我正在对 I O 密集型应用程序进行一些实验 并试图了解改变内核 I O 缓冲区大小 不同电梯算法等的影响 如何知道内核中 i o 缓冲区的当前大小 内核是否根据需要使用多个缓冲区 我怎样才能改变这个缓冲区的大小 是否有一个配置文件存储此信
  • Oracle 10g 中通过数据库链接的传输是否经过压缩?是否可以?

    我正在通过数据库链接将数据从一个基地传输到另一个基地 使用INSERT INTO SELECT 我想知道通过链接传输的数据是否经过压缩或者可以压缩以避免过多的网络使用 我的带宽非常少 我认为如果还没有完成的话会有所帮助 有一些重复数据删除但
  • 每行带有 ^M 的文本文件

    我刚刚从朋友那里得到了一个源代码文件 该文件是在 UNIX 中创建的 当我使用 NotePad 在 Windows 中打开它时 每一行都有一个额外的空行 带着疑惑 我下载了 Vim 并用它打开了该文件 然后我在每行末尾看到一堆 M 这是什么
  • TFS 2010:如何将工作项链接到变更集

    我想以编程方式将工作项链接到变更集 目前 我已经从我的 C 代码创建工作项并将它们保存到 TFS 代码如下 WorkItem item new WorkItem project WorkItemTypes CustomItem item F
  • 使用system()执行命令时如何设置环境变量?

    我正在 Linux 上编写 C 程序 需要执行命令system 并且在执行该命令时需要设置环境变量 但我不知道在使用时如何设置环境变量system 如果要将与父进程不同的环境变量传递给子进程 可以使用以下组合getenv and seten
  • 获取所有程序的、用户定义的函数

    如何通过以下方式获取所有用户定义函数的列表SQL query 我找到这段代码here SELECT p proname p pronargs t typname FROM pg proc p pg language l pg type t
  • 在 iPad 上使用 Swift UI 禁用分割视图

    有没有办法在 iPad 上的导航视图中使用 SwiftUI 禁用 SplitView 通过设置NavigationViewStyle import SwiftUI struct NavView View var body some View
  • 使用标记模板文字传递更多参数

    我正在与样式组件并使用其标记模板文字语法生成组件 例如 const Button styled button background color papayawhip border radius 3px color palevioletred