gpt4 book ai didi

reactjs - react-admin:如果将 react-admin 嵌入到非 redux 应用程序中,是否需要将 redux 安装到应用程序中?

转载 作者:行者123 更新时间:2023-12-04 17:38:40 24 4
gpt4 key购买 nike

在为 react-admin 实现自定义布局后出现以下错误:

Violation: Could not find "store" in the context of "Connect(CustomMenu)". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to Connect(CustomMenu) in connect options.

这是我在应用中嵌入的内容:

 import React, {Component} from "react"
import {Admin, Resource} from "react-admin"
import buildGraphQLProvider from "ra-data-graphql-simple"
import Dashboard from "./course-dashboard.js"
import {PostsList} from "../components/posts"
import {withStyles} from "@material-ui/core/styles"
import customRoutes from "../components/custom-routes.js"
import customLayout from "../components/custom-layout.js"
import {styles} from "../styles.js"

class App extends Component {
constructor() {
super()
this.state = {dataProvider: null}
}

componentDidMount() {
buildGraphQLProvider({
clientOptions: {
uri: http://localhost/graphql"
}
}).then(dataProvider => this.setState({dataProvider}))
}

render() {
const {dataProvider} = this.state

if (!dataProvider) {
return <div>Loading</div>
}

return (
<Admin
appLayout={customLayout}
customRoutes={customRoutes}
dashboard={Dashboard}
dataProvider={dataProvider}>
<Resource name="Post" list={PostsList} />
</Admin>
)
}
}

export default withStyles(styles)(App)

自定义布局

 import React from "react"
import {Layout} from "react-admin"
import CustomSidebar from "./custom-sidebar"
import CustomMenu from "./custom-menu.js"

const MyLayout = props => (
<Layout
{...props}
sidebar={CustomSidebar}
menu={CustomMenu}
/>
)

export default MyLayout

自定义菜单。此页面产生错误。

 import React from "react"
import {connect} from "react-redux"
import {MenuItemLink, getResources, Responsive} from "react-admin"
import {withRouter} from "react-router-dom"

const CustomMenu = ({resources, onMenuClick, logout}) => (
<div>
{resources.map(resource => (
<MenuItemLink
key={resource.name}
to={`/${resource.name}`}
primaryText={resource.name}
onClick={onMenuClick}
/>
))}
<MenuItemLink
to="/custom-route"
primaryText="Miscellaneous"
onClick={onMenuClick}
/>
<Responsive
small={logout}
medium={null} // Pass null to render nothing on larger devices
/>
</div>
)

const mapStateToProps = state => ({
resources: getResources(state)
})

export default withRouter(connect(mapStateToProps)(CustomMenu))

我宁愿在我的主应用程序中没有 redux。看起来我不需要它,因为在尝试自定义它之前我已经进行了 react-admin 工作。

最佳答案

虽然问题有点老了,但是对于那些还在纠结这个问题的人来说:

是的,您必须包含 react-reduxredux 包,并确保您已更新到最新版本,否则此错误消息仍然会出现。

关于reactjs - react-admin:如果将 react-admin 嵌入到非 redux 应用程序中,是否需要将 redux 安装到应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55555182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com