使用 React Router 渲染组件和 Redux 崩溃

亚历克斯·艾恩赛德

我有一个 React 应用程序,它开始失控,所以我决定使用 React-Redux。它有点顺利,直到我遇到一个奇怪的错误。它是:

TypeError: this is undefined

如果它没有被扔到 React-Redux 库中,这也不会令人印象深刻。像这样:

PureComponent
node_modules/react/cjs/react.development.js:412

  409 |  */
  410 | 
  411 | function PureComponent(props, context, updater) {
> 412 |   this.props = props;
  413 | ^  this.context = context; // If a component has string refs, we will assign a different object later.
  414 | 
  415 |   this.refs = emptyObject;

控制台说:

The above error occurred in one of your React components:
    in Unknown (created by Context.Consumer)
    in Connect(Component) (at RegisterFormUI.jsx:32)
    in form (at RegisterFormUI.jsx:21)
    in div (at RegisterFormUI.jsx:18)
    in div (at RegisterFormUI.jsx:15)
    in div (at RegisterFormUI.jsx:14)
    in div (at RegisterFormUI.jsx:13)
    in Unknown (created by Context.Consumer)
    in Connect(Component) (created by Route)
    in Route (at SharedPaths.jsx:18)
    in Switch (at NavigationUI.jsx:98)
    in Router (created by BrowserRouter)
    in BrowserRouter (at NavigationUI.jsx:65)
    in Unknown (created by Context.Consumer)
    in Connect(Component) (at App.js:50)
    in div (at App.js:49)
    in App (at src/index.js:15)
    in Provider (at src/index.js:14)

这是没有意义的,因为Connect我的RegisterFormUI组件中没有调用方法我不知道我搞砸了什么。这是我的表单 UI:

export default ({user = {}}) => {
    return <BrowserRouter>
        <React.Fragment>
            <Navbar className='navbar_all'>
                <Navbar.Header>
                    <Navbar.Brand>
                        <LinkContainer className='navbar_brand' id='home' to='/'>
                            <NavItem>
                                <img alt='ZdajTo' src="assets/images/new_logo.png" style={{height: '30px'}}/>
                            </NavItem>
                        </LinkContainer>
                    </Navbar.Brand>
                </Navbar.Header>
                <Nav className='float_right'>
                    <LinkContainer to='/homepage' style={{textDecoration: 'none'}}>
                        <NavItem>
                            <button style={{
                                backgroundColor: '#F16049',
                                border: '4px solid #F16049',
                                borderRadius: '4px',
                                padding: '10px',
                                marginBottom: '5px',
                                color: '#fff'
                            }}>
                                DLA ROZWIĄZUJĄCYCH
                            </button>
                        </NavItem>
                    </LinkContainer>
                </Nav>
                <Nav className='float_right'>
                    <SharedNavBar user={user.userAcc}/>
                    {renderNavBar(user)}
                </Nav>
            </Navbar>
            <Switch>
                {renderPaths(user) ? renderPaths(user).map(path => path) : null}
                {SharedPaths.map(path => path)}
            </Switch>
        </React.Fragment>
    </BrowserRouter>
};

我的容器是这样的:

import {connect} from 'react-redux';
import UI from '../../ui/studentRegistrationUI/RegisterFormUI'
import {beginRegistration} from "../../../../actions";

const mapStateToProps = state => ({user: state.user});

const mapDispatchToProps = dispatch => ({
    handleClick() {
        dispatch(
            beginRegistration('student')
        )
    }
});
export default connect(mapStateToProps, mapDispatchToProps)(UI)

知道我搞砸了什么吗?

亚历克斯·艾恩赛德

我的一个子组件有问题。主要是我试图这样做:

{CheckBox('Regulations', '/assets/regulamin.pdf', 'regulamin')}

我应该这样做:

<CheckBox id={'Regulations'} path={'/assets/regulamin.pdf'} text={'regulamin'}/>

这是供将来参考的容器:

import {connect} from 'react-redux';
import UI from '../../../ui/studentRegistrationUI/components/CheckBoxUI'

const mapStateToProps = (state, props) => ({user: state.user, id: props.id, path: props.path, text: props.text});

export default connect(mapStateToProps)(UI)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用React Router和Redux Simple Router进行onEnter转换不会渲染新路由的组件

来自分类Dev

无法使用React Router和React Bootstrap渲染组件

来自分类Dev

使用 Redux 和 React Hooks,Flatlist 不会重新渲染,也不会重新渲染其中的各个组件

来自分类Dev

无法使用React Router渲染组件

来自分类Dev

如何使用带有react-redux的react-router-dom v6.0.0渲染不同的组件

来自分类Dev

使用react-router和redux容器组件对路由参数进行线程化

来自分类Dev

使用 react router 4.2 渲染侧边栏和其他组件

来自分类Dev

使用React,redux和react-redux-router登录验证:正确的方法是?

来自分类Dev

如何使用React-Router和React-Redux将道具发送到子路由组件?

来自分类Dev

Redux + React-Router无法渲染

来自分类Dev

如何使用react-router渲染嵌套组件

来自分类Dev

用户登录后如何使用React Router渲染不同的组件

来自分类Dev

使用React Router重定向后重新渲染组件

来自分类Dev

如何使用react-router根据路线渲染容器/组件?

来自分类Dev

如何使用react-redux与mapStateToProps,MapDispatchToProps和Redux-Router连接

来自分类Dev

如何使用react-router-redux routeActions?

来自分类Dev

重新渲染React和Redux中的所有组件

来自分类Dev

React Router不渲染组件

来自分类Dev

React / Redux 组件重新渲染

来自分类Dev

React Redux 渲染连接组件

来自分类Dev

Redux和React-Router正确设置

来自分类Dev

无法使用react-router-redux访问context.router

来自分类Dev

React,Redux和React-Router服务器端渲染

来自分类Dev

使用带有redux的react-native-router-flux,如何更新视图组件中的状态?

来自分类Dev

使用 React Router 嵌套组件

来自分类Dev

React:使用React-router实现Redux麻烦

来自分类Dev

使用React-Router和Redux时单击链接时如何调度动作?

来自分类Dev

推荐使用Redux和React-Router进行深度链接的方法

来自分类Dev

使用react-router和redux时如何维护商店的状态?

Related 相关文章

  1. 1

    使用React Router和Redux Simple Router进行onEnter转换不会渲染新路由的组件

  2. 2

    无法使用React Router和React Bootstrap渲染组件

  3. 3

    使用 Redux 和 React Hooks,Flatlist 不会重新渲染,也不会重新渲染其中的各个组件

  4. 4

    无法使用React Router渲染组件

  5. 5

    如何使用带有react-redux的react-router-dom v6.0.0渲染不同的组件

  6. 6

    使用react-router和redux容器组件对路由参数进行线程化

  7. 7

    使用 react router 4.2 渲染侧边栏和其他组件

  8. 8

    使用React,redux和react-redux-router登录验证:正确的方法是?

  9. 9

    如何使用React-Router和React-Redux将道具发送到子路由组件?

  10. 10

    Redux + React-Router无法渲染

  11. 11

    如何使用react-router渲染嵌套组件

  12. 12

    用户登录后如何使用React Router渲染不同的组件

  13. 13

    使用React Router重定向后重新渲染组件

  14. 14

    如何使用react-router根据路线渲染容器/组件?

  15. 15

    如何使用react-redux与mapStateToProps,MapDispatchToProps和Redux-Router连接

  16. 16

    如何使用react-router-redux routeActions?

  17. 17

    重新渲染React和Redux中的所有组件

  18. 18

    React Router不渲染组件

  19. 19

    React / Redux 组件重新渲染

  20. 20

    React Redux 渲染连接组件

  21. 21

    Redux和React-Router正确设置

  22. 22

    无法使用react-router-redux访问context.router

  23. 23

    React,Redux和React-Router服务器端渲染

  24. 24

    使用带有redux的react-native-router-flux,如何更新视图组件中的状态?

  25. 25

    使用 React Router 嵌套组件

  26. 26

    React:使用React-router实现Redux麻烦

  27. 27

    使用React-Router和Redux时单击链接时如何调度动作?

  28. 28

    推荐使用Redux和React-Router进行深度链接的方法

  29. 29

    使用react-router和redux时如何维护商店的状态?

热门标签

归档