Reactjs 映射到React 16中的片段

Reactjs 映射到React 16中的片段,reactjs,react-16,Reactjs,React 16,我试图映射一个片段的子元素,而这个片段又是一个组件的子元素。例如: const Frag = () => ( <React.Fragment key="test-key"> <div>test1</div> <div>test2</div> </React.Fragment> ); const Outer = ({ children }) => ( <div> {

我试图映射一个片段的子元素,而这个片段又是一个组件的子元素。例如:

const Frag = () => (
  <React.Fragment key="test-key">
    <div>test1</div>
    <div>test2</div>
  </React.Fragment>
);

const Outer = ({ children }) => (
  <div>
    {
      React.Children.map(children, (child) => (
        <a>
          {child}
        </a>
      ))
    }
  </div>
);

// Usage
<Outer>
  <Frag />
</Outer>
const Frag=()=>(
测试1
测试2
);
常量外部=({children})=>(
{
React.Children.map(Children,(child)=>(

)似乎表明这应该适用于键控片段,我认为我正在正确创建键控片段()。任何帮助都将不胜感激!

是的,但据我所知,您正在迭代
外部
子级。 设法

但是,仔细看一下你的链接,我发现文档中有错误的地方

函数永远不会传递给容器对象

下面是一个示例,它清楚地显示了容器被传递给函数:


常数Frag=()=>(
测试1
测试2
); 
常量外部=({children})=>(
{ 
React.Children.map(Children,(child)=>console.log(`child-type是${child.type.name | | child.type.toString()}`))|(
{child}
)) 
}
); 
ReactDOM.render((
测试1
测试2
),document.getElementById('root');

你说得对,确实有效。谢谢!只是为了澄清我是否正确理解了第一个链接,我不需要这样做。它说它应该在一个键控片段上迭代。你对此有什么见解吗?它确实呈现了,但是如果你查看结果html,test1和test2都在一个
标记中。我认为t给定一个片段映射,子类将在自己的
a
标记中返回test1和test2。
React.Children.map(children[0].props.children, (child) => (