Reactjs 反应未知道具警告
我试图使用道具呈现DOM元素,但React未将我的尝试识别为合法的DOM属性/属性 所以我开始研究一个解决方案,我从中找到了这个来源。然而,尽管解释得很好,但我有一个更深层次的问题,因此将涉及更深层次的解决方案 作为代码示例,我将介绍Reactjs 反应未知道具警告,reactjs,redux,warnings,react-redux,react-router-redux,Reactjs,Redux,Warnings,React Redux,React Router Redux,我试图使用道具呈现DOM元素,但React未将我的尝试识别为合法的DOM属性/属性 所以我开始研究一个解决方案,我从中找到了这个来源。然而,尽管解释得很好,但我有一个更深层次的问题,因此将涉及更深层次的解决方案 作为代码示例,我将介绍ExampleContainer方法: export let ExampleContainer = (props) => { return ( <DetailsContainer tabs={props.tabs} active
ExampleContainer
方法:
export let ExampleContainer = (props) => {
return (
<DetailsContainer tabs={props.tabs} activeTab={props.activeTab}>
{props.children}
</DetailsContainer>
)
}
最后,问题出现在我的mergeProps
中,我有这个选项卡
source给我提供了问题,更具体地说,在i18n
属性中:
const mergeProps = (stateProps, dispatchProps, ownProps) => {
return Object.assign({}, ownProps, {
tabs: [
{
'onClick' : dispatchProps.goToExampleOptionA,
'key' : 'ExampleOptionA',
'i18n' : stateProps.i18n.Tabs.exampleOptionATab
},
{
'onClick' : dispatchProps.goToExampleOptionB,
'key' : 'ExampleOptionB',
'i18n' : stateProps.i18n.Tabs.exampleOptionBTab
}
]
}, stateProps)
}
问题是,当我打开容器时,它会向我发出以下警告:
我的DeyailsContainer
组件是:
let DetailsContainer = ({
tabs,
rightIcons,
activeTab,
children
}) => {
return (
<div>
<Tabs tabs={tabs} rightIcons={rightIcons} activeTab={activeTab}/>
<div className="app-wrapper">
{children}
</div>
</div>
)
}
let details容器=({
标签,
右图标,
activeTab,
儿童
}) => {
返回(
{儿童}
)
}
这是由于将i18n道具直接传递到某个地方
我猜它在你的DetailsContainer组件中。如果您将组件接收到的所有道具像这样分散到div中,那么肯定可以做到这一点
现在,当您尝试传递某些类型的道具时,React会发出警告,这些道具不是DOM元素的标准属性。如果出于如下原因需要将i18n作为属性,您需要将其更改为data-i18n作为道具。这是因为将您的i18n道具直接传递到某个
位置
我猜它在你的DetailsContainer组件中。如果您将组件接收到的所有道具像这样分散到div中,那么肯定可以做到这一点
现在,当您尝试传递某些类型的道具时,React会发出警告,这些道具不是DOM元素的标准属性。如果出于如下原因需要将i18n作为属性,您需要将其更改为data-i18n作为道具。我更新了信息以向您显示我的
详细信息容器
似乎不在其中。您找到了吗?它可能在选项卡组件中。实际上,这个组件看起来很熟悉。如果您碰巧正在使用react foundation组件库,那么问题就出在这里。不幸的是,他们正在将无效的道具传递到他们的许多元素中。我最终没有使用它们,我还没弄明白。但是我使用了我自己的选项卡
组件:我更新了信息以向您显示我的详细信息容器
似乎不在其中。您找到了吗?它可能在选项卡组件中。实际上,这个组件看起来很熟悉。如果您碰巧正在使用react foundation组件库,那么问题就出在这里。不幸的是,他们正在将无效的道具传递到他们的许多元素中。我最终没有使用它们,我还没弄明白。但我使用自己的选项卡组件:
let DetailsContainer = ({
tabs,
rightIcons,
activeTab,
children
}) => {
return (
<div>
<Tabs tabs={tabs} rightIcons={rightIcons} activeTab={activeTab}/>
<div className="app-wrapper">
{children}
</div>
</div>
)
}