作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个对象,我需要返回每个对象以检查其映射结果。我下面的代码的问题是在这一行
style: { ...map[settings] },
我需要一种方法来遍历每个设置并将其传递给 map 。不确定如何在 es6 中以最有效的方式去做?
这是传递到 PassThrough 组件的设置值
const settings = {
block_background: GradientGreen,
block_spacing: padding,
};
这是我的组件
const PassThrough = ({ children, settings }) => {
const map = {
GradientGreen: {
background: 'linear-gradient(-95deg, green, blue 100%)',
},
padding: '20px',
};
const cloneChild = () => {
return cloneElement(children, {
style: { ...map[settings] },
});
};
return (
<Fragment>
{cloneChild()}
<Fragment/>
);
};
最佳答案
最短的大概是:
inlineStyle: Object.assign({}, ...Object.entries(settings).map(([k, v]) => ({ [k]: map[v] })))
但实际上我会将 settings
更改为:
const settings = original => {
block_background: original.GradientGreen,
block_spacing: original.padding,
};
那么就是:
inlineStlye: settings(map)
关于javascript - 如何将js中的一堆对象映射到另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54355373/
我是一名优秀的程序员,十分优秀!