Material-UI:提供的值`undefined`无效

时间:2018-04-11 19:16:33

标签: reactjs material-ui

我使用材料ui 1.0.0-beta.35中的标签标签 Appbar 来显示一些带有标签的标签带有数据的对象。

我从material-ui得到了这个错误:

Warning: Material-UI: the value provided `undefined` is invalid

我可以在 codesandbox (材料ui 1.0.0-beta.38但同样的错误)中重现它:

code example

点击"控制台"看错误。 据我所知,我遵循了这些指导原则? :

https://material-ui-next.com/api/tabs/

https://material-ui-next.com/api/tab/

https://material-ui-next.com/api/app-bar/

在实际项目中,当我单击选项卡时,这会导致appbar无法运行。它确实工作了一段时间,但后来这个错误发生了,但我还没能找到导致错误的原因。

1 个答案:

答案 0 :(得分:5)

使用<location>组件,您负责维护您所在州的所选标签,这是它抱怨的未定义Tabs道具。所以你需要做这样的事情:

value

然后将class TabsContainer extends Component { state = { selectedTab: 'shop-setup' } handleTabClick = (event, value) => { this.setState({selectedTab: value}); } .. <TabsContent tabs={tabData} selectedTab={this.state.selectedTab} onChange={this.handleTabClick} /> .. } 作为selectedTab传递给value

Tabs

如果您不为每个const TabsContent = ({ tabs, selectedTab, onChange }) => { .. <Tabs value={selectedTab} onChange={onChange}> .. }; 提供value,则初始化会更容易,因此Tab只会成为索引。

您还希望将selectedTab定义从RenderTab中提取出来,因为它现在每次渲染都是新创建的,这将导致不必要的重新安装和可能的状态丢失。

更新:这是一个有效的sandbox