Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在样式化组件中将背景作为道具传递_Javascript_Reactjs_Styled Components - Fatal编程技术网

Javascript 在样式化组件中将背景作为道具传递

Javascript 在样式化组件中将背景作为道具传递,javascript,reactjs,styled-components,Javascript,Reactjs,Styled Components,我试图在样式化组件中将背景作为道具传递,但我不确定如何通过cdn函数传递,因为它在css中无法正确输出 这是css的输出: background:url(https://local.dev:5601/pub/media/icons/menu/function (props){return props.background;}.png) 如何通过cdn功能传递道具 config.js export function cdn(path) { return `https://l

我试图在样式化组件中将背景作为道具传递,但我不确定如何通过cdn函数传递,因为它在css中无法正确输出

这是css的输出:

background:url(https://local.dev:5601/pub/media/icons/menu/function (props){return props.background;}.png)

如何通过cdn功能传递道具

config.js

    export function cdn(path) {
        return `https://local.dev:5601/pub/media/${path}`;
      }

      class Config {
        cdn
      }


  export default Config;
import React from "react";
import styled from 'styled-components'

const Circle = styled.span`
  display: block;
  position: relative;
  width: 35px;
  height: 35px;
  cursor: pointer;
  border-radius: 50%;
  background: url("${cdn('icons/menu/' + (props => props.background) + '.png')}");
  margin: 5px;
`

const CircleWrap = styled.div`
  display: flex;
  flex-wrap: wrap;
  padding: 0 0 5px 0;
`

class App extends React.Component {
  selectColor = (color) => {
    this.props.selectColor(color);
  }
  render() {
    return (
      <SettingDrop
        title={"Profilfarbe"}
        closeDropdown={this.props.closeDropdown}
        openDropdown={this.props.openDropdown}
        isOpen={this.props.isOpen}
        isHidden={this.props.isHidden}
        isValid={this.props.isValid}
        icon={<ProfilFarbe />}
      >
        <CircleWrap>
          {console.log(this.props.colors)}
          {this.props.colors.map( color =>
            <Circle
              background={color.hash}
              onClick={()=>this.selectColor(color.alias)}
            >
            </Circle>
          )}
        </CircleWrap>
      </SettingDrop>
    );
  }
};
App.js

    export function cdn(path) {
        return `https://local.dev:5601/pub/media/${path}`;
      }

      class Config {
        cdn
      }


  export default Config;
import React from "react";
import styled from 'styled-components'

const Circle = styled.span`
  display: block;
  position: relative;
  width: 35px;
  height: 35px;
  cursor: pointer;
  border-radius: 50%;
  background: url("${cdn('icons/menu/' + (props => props.background) + '.png')}");
  margin: 5px;
`

const CircleWrap = styled.div`
  display: flex;
  flex-wrap: wrap;
  padding: 0 0 5px 0;
`

class App extends React.Component {
  selectColor = (color) => {
    this.props.selectColor(color);
  }
  render() {
    return (
      <SettingDrop
        title={"Profilfarbe"}
        closeDropdown={this.props.closeDropdown}
        openDropdown={this.props.openDropdown}
        isOpen={this.props.isOpen}
        isHidden={this.props.isHidden}
        isValid={this.props.isValid}
        icon={<ProfilFarbe />}
      >
        <CircleWrap>
          {console.log(this.props.colors)}
          {this.props.colors.map( color =>
            <Circle
              background={color.hash}
              onClick={()=>this.selectColor(color.alias)}
            >
            </Circle>
          )}
        </CircleWrap>
      </SettingDrop>
    );
  }
};
从“React”导入React;
从“样式化组件”导入样式化
const Circle=styled.span`
显示:块;
位置:相对位置;
宽度:35px;
高度:35px;
光标:指针;
边界半径:50%;
背景:url(${cdn('icons/menu/'+(props=>props.background)+'.png'));
保证金:5px;
`
const CircleWrap=styled.div`
显示器:flex;
柔性包装:包装;
填充:0 5px 0;
`
类应用程序扩展了React.Component{
选择颜色=(颜色)=>{
this.props.selectColor(颜色);
}
render(){
返回(
{console.log(this.props.colors)}
{this.props.colors.map(color=>
this.selectColor(color.alias)}
>
)}
);
}
};

以下语法将起作用:

background:url(${cdn('icons/menu/')}${props=>props.background}.svg”)