Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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 React中的标签内容_Javascript_Reactjs - Fatal编程技术网

Javascript React中的标签内容

Javascript React中的标签内容,javascript,reactjs,Javascript,Reactjs,有很多在线代码示例,您可以在其中构建选项卡,如: <Container> <Tab title="Tab A"> {"Tab A content"} </Tab> <Tab title="Tab A"> {"Tab B content"} </Tab> </Container> 但是我们想让我们的标签更复杂一点。

有很多在线代码示例,您可以在其中构建选项卡,如:

<Container>
  <Tab title="Tab A">
    {"Tab A content"}
  </Tab>
  <Tab title="Tab A">
    {"Tab B content"}
  </Tab>
</Container>
但是我们想让我们的标签更复杂一点。每个选项卡都有各种网络请求,根据网络请求的输出,选项卡标题可能会有所不同。与此父组件中的所有数据获取逻辑不同,我希望如下所示:

<Container>
 <TabOneWithDataFetching/> 
 {....}
 <TabNWithDataFetching/>
</Container>

const TabOneWithDataFetching = () => {
 const content = // make network request
 const title = // make network request
 return <Tab title={title}>{content}</Tab>
}

{....}
const TabOneWithDataFetching=()=>{
const content=//发出网络请求
const title=//发出网络请求
返回{content}
}

但是,当我这样做时,似乎会使从
容器
组件呈现所选内容变得非常困难。我不能再做
props.children[index].children
了,输入这个也变得一团糟。我是不是处理得不对?这是对组件和模块化的错误思考吗?

我想你很接近了,React非常关注组件的状态管理。如果您正在使用引导,您可以查看


也许一些非引导库可以用于选项卡式内容。

使用react router可能会更容易。我想知道容器在这里到底做了什么工作。我想,您真正需要的是某种开关组件来控制选项卡之间的流,您可以通过路由库将其绑定到URL,但如果不亲自路由,就不难实现(中的一些有用示例)。访问
props.children[index].children
绝对不是一条好路。
<Container>
 <TabOneWithDataFetching/> 
 {....}
 <TabNWithDataFetching/>
</Container>

const TabOneWithDataFetching = () => {
 const content = // make network request
 const title = // make network request
 return <Tab title={title}>{content}</Tab>
}