Javascript 反应-以匹配的排序顺序呈现子级?
给定渲染其子级的组件,我无法使子级按照其Javascript 反应-以匹配的排序顺序呈现子级?,javascript,reactjs,Javascript,Reactjs,给定渲染其子级的组件,我无法使子级按照其newOrder顺序进行排序: export default class EnhancedLinks extends React.Component { render() { return ( <div> {React.Children.map( this.props.children.filter((c) => c), (el) => el
newOrder
顺序进行排序:
export default class EnhancedLinks extends React.Component {
render() {
return (
<div>
{React.Children.map(
this.props.children.filter((c) => c),
(el) => el
)}
</div>
);
}
}
export default class App extends React.Component {
render() {
const newOrder = ["dandelion", "cantaloupe", "apple", "banana"];
return (
<div>
<EnhancedLinks>
<div name="apple" color="red">apple</div>
<div name="banana" color="yellow">banana</div>
<div name="cantaloupe" color="orange">cantaloupe</div>
<div name="dandelion" color="green">dandelion</div>
</EnhancedLinks>
</div>
);
}
}
导出默认类增强链接扩展React.Component{
render(){
返回(
{React.Children.map(
this.props.children.filter((c)=>c),
(el)=>el
)}
);
}
}
导出默认类App扩展React.Component{
render(){
const newOrder=[“蒲公英”、“哈密瓜”、“苹果”、“香蕉”];
返回(
苹果
香蕉
哈密瓜
蒲公英
);
}
}
知道如何让增强链接
子级按照新顺序
数组的顺序进行渲染吗
这是一把小提琴:
将
newOrder
数组映射到
s,而不是单独写出它们
const colors = ['red', 'yellow', 'orange', 'green'];
return (
<div>
<EnhancedLinks>
{newOrder.map((name, i) => <div name={name} color={colors[i]}>{name}</div>)}
</EnhancedLinks>
</div>
);
const colors=[“红色”、“黄色”、“橙色”、“绿色”];
返回(
{newOrder.map((名称,i)=>{name})
);
将
newOrder
数组映射到
s,而不是单独写出它们
const colors = ['red', 'yellow', 'orange', 'green'];
return (
<div>
<EnhancedLinks>
{newOrder.map((name, i) => <div name={name} color={colors[i]}>{name}</div>)}
</EnhancedLinks>
</div>
);
const colors=[“红色”、“黄色”、“橙色”、“绿色”];
返回(
{newOrder.map((名称,i)=>{name})
);
EnchancedLinks组件应该呈现div、颜色和文本,而不是外部包装组件。这样一来,复制/粘贴的代码就更少了,您可以在数组中设置顺序,或者根据需要操纵数组
export default class EnhancedLinks extends React.Component {
render() {
return (
<div name={this.props.name} color={this.props.color}>
{this.props.name}
</div>
);
}
}
export default class App extends React.Component {
render() {
const newOrder = [
{
name: "dandelion",
color: "green"
},
{
name: "cantaloupe",
color: "orange"
},
{
name: "apple",
color: "red"
},
{
name: "banana",
color: "yellow"
}];
return (
<div>
{newOrder.map((link) => {
return <EnhancedLinks {...link} />
})}
</div>
);
}
}
导出默认类增强链接扩展React.Component{
render(){
返回(
{this.props.name}
);
}
}
导出默认类App扩展React.Component{
render(){
常数newOrder=[
{
名称:“蒲公英”,
颜色:“绿色”
},
{
名称:“哈密瓜”,
颜色:“橙色”
},
{
名称:“苹果”,
颜色:“红色”
},
{
名称:“香蕉”,
颜色:“黄色”
}];
返回(
{newOrder.map((链接)=>{
返回
})}
);
}
}
我已经为您提出了一个解决方案:您的EnchancedLinks组件应该呈现div、颜色和文本,而不是外部包装组件。这样一来,复制/粘贴的代码就更少了,您可以在数组中设置顺序,或者根据需要操纵数组
export default class EnhancedLinks extends React.Component {
render() {
return (
<div name={this.props.name} color={this.props.color}>
{this.props.name}
</div>
);
}
}
export default class App extends React.Component {
render() {
const newOrder = [
{
name: "dandelion",
color: "green"
},
{
name: "cantaloupe",
color: "orange"
},
{
name: "apple",
color: "red"
},
{
name: "banana",
color: "yellow"
}];
return (
<div>
{newOrder.map((link) => {
return <EnhancedLinks {...link} />
})}
</div>
);
}
}
导出默认类增强链接扩展React.Component{
render(){
返回(
{this.props.name}
);
}
}
导出默认类App扩展React.Component{
render(){
常数newOrder=[
{
名称:“蒲公英”,
颜色:“绿色”
},
{
名称:“哈密瓜”,
颜色:“橙色”
},
{
名称:“苹果”,
颜色:“红色”
},
{
名称:“香蕉”,
颜色:“黄色”
}];
返回(
{newOrder.map((链接)=>{
返回
})}
);
}
}
我给你提出了一个解决方案: