Javascript Reactjs,使用不同的样式设置数组的每个元素的样式
我想用一些元素创建一个数组,然后(用.forEach或.map)迭代它。 但是每个数组元素必须有不同的样式。例如,我有一个这样的数组:Javascript Reactjs,使用不同的样式设置数组的每个元素的样式,javascript,reactjs,Javascript,Reactjs,我想用一些元素创建一个数组,然后(用.forEach或.map)迭代它。 但是每个数组元素必须有不同的样式。例如,我有一个这样的数组: ["johnny red", "Stephanie blue", "Hans green", "Fifty Shades Of grey :d"] 另外,我希望在另一个组件中重用一些数组的单个元素。 我该怎么做 (假设每个元素中的最后一个单词是单独的样式,例如背景色或颜色) 你能帮我吗? 请给我一个建议,我会怎么做 你的意思是这样的?下面是代码段,下面是co
["johnny red", "Stephanie blue", "Hans green", "Fifty Shades Of grey :d"]
另外,我希望在另一个组件中重用一些数组的单个元素。
我该怎么做
(假设每个元素中的最后一个单词是单独的样式,例如背景色或颜色)
你能帮我吗?
请给我一个建议,我会怎么做 你的意思是这样的?下面是代码段,下面是codepen示例: 另外,您是否考虑过将样式化组件与react合并?它可以帮助这个项目
{children.map(元素=>{
返回(
)
})}
这来自另一个项目:
import * as React from "react";
import { IAddressListProps } from '../../detailPage/components/interfaces/IAddressListProps';
import { config } from "../../config";
export class PrintAddressList extends React.Component<IAddressListProps, {}>{
constructor(props: IAddressListProps) {
super(props);
}
private createAddressCard = () => {
let parent = [];
this.props.items.map((address) => {
parent.push(<div style={{ padding: '10px', border: '1px solid #ccc', margin: '5px' }}>
<label>{config.colNames.addressList.clmnAddressType}: </label>
<label>{address.Adressart}</label><br />
<label>{config.colNames.addressList.clmnCompanyName}: </label>
<label>{address.Firma}</label><br />
<label>{config.colNames.addressList.clmnPlaceName}: </label>
<label>{address.Ort}</label><br />
<label>{config.colNames.addressList.clmnZipCode}: </label>
<label>{address.PLZ}</label><br />
<label>{config.colNames.addressList.clmnTelephone}: </label>
<label>{address.Telefon}</label><br />
</div>);
});
return parent;
}
public render(): React.ReactElement<IAddressListProps> {
return (
<div>
{this.createAddressCard()}
</div>
);
}
}
import*as React from“React”;
从“../../detailPage/components/interfaces/IAddressListProps”导入{IAddressListProps};
从“../../config”导入{config};
导出类PrintAddressList扩展React.Component{
构造器(道具:IAddressListProps){
超级(道具);
}
私有createAddressCard=()=>{
让父项=[];
this.props.items.map((地址)=>{
parent.push(
{config.colNames.addressList.clmnAddressType}:
{address.Adressart}
{config.colNames.addressList.clmnCompanyName}:
{address.Firma}
{config.colNames.addressList.clmnPlaceName}:
{address.Ort}
{config.colNames.addressList.clmnZipCode}:
{address.PLZ}
{config.colNames.addressList.clmnTelephone}:
{address.Telefon}
);
});
返回父母;
}
public render():React.ReactElement{
返回(
{this.createAddressCard()}
);
}
}
实现这一点的方法有很多,关键区别在于如何表示值样式对
最后,您需要将这些值映射到它们的样式
用于:
const myStyles={
约翰尼·瑞德:{color:'red'},
斯蒂芬妮蓝:{color:'blue'},
“汉斯·格林”:{颜色:“格林”},
“五十种灰色:d':{颜色:'粉色'}
};
导出默认函数App(){
返回(
{Object.entries(myStyles.map)([key,style])=>(
{key}
))}
);
}
不太清楚您想要什么,但您可以将样式附加到组件上,如下所示:
const值=[
{
正文:“一”,
css:{color:'blue'}
},
{
文本:“两个”,
css:{color:'red'}
},
];
常量测试=道具=>{
常量{values}=props;
返回(
{values.map(
(value,i)=>{value.text}
)}
);
}
ReactDOM.render(
,
document.getElementById(“react”)
);代码>
请你说得具体一点好吗?数组的用途是什么?声明了“值”,但从未读取其值。编辑器无法读取“值”数组:(在您的answer@Casterly值数组用作测试组件中的道具
import * as React from "react";
import { IAddressListProps } from '../../detailPage/components/interfaces/IAddressListProps';
import { config } from "../../config";
export class PrintAddressList extends React.Component<IAddressListProps, {}>{
constructor(props: IAddressListProps) {
super(props);
}
private createAddressCard = () => {
let parent = [];
this.props.items.map((address) => {
parent.push(<div style={{ padding: '10px', border: '1px solid #ccc', margin: '5px' }}>
<label>{config.colNames.addressList.clmnAddressType}: </label>
<label>{address.Adressart}</label><br />
<label>{config.colNames.addressList.clmnCompanyName}: </label>
<label>{address.Firma}</label><br />
<label>{config.colNames.addressList.clmnPlaceName}: </label>
<label>{address.Ort}</label><br />
<label>{config.colNames.addressList.clmnZipCode}: </label>
<label>{address.PLZ}</label><br />
<label>{config.colNames.addressList.clmnTelephone}: </label>
<label>{address.Telefon}</label><br />
</div>);
});
return parent;
}
public render(): React.ReactElement<IAddressListProps> {
return (
<div>
{this.createAddressCard()}
</div>
);
}
}