错误:未捕获[TypeError:无法读取未定义的属性'id']

时间:2020-07-25 05:49:33

标签: react-router jestjs

我正在使用react-router-dom路由我的组件,并对一个路由的组件进行测试。 我的App.js

<Route
     path="/register/:id"
     render={(props) => (
       <Details
         {...props}/>
     )}
></Route>

我试图将匹配项添加到这样的组件中

const match = {
        params: {
            id: "123"
        }
    };

Details组件在某些函数中使用this.props.match.params.id,我不知道这些函数的调用方式,但是出现了错误

Error: Uncaught [TypeError: Cannot read property 'id' of undefined]

当我使用

console.log(this.props.match)

我明白了

{ match: { params: { id: 'id' } } }

但是当我使用

console.log(this.props.match.params)

我得到undefined

更新

我认为我传递match参数的方式是错误的。在创建json对象posts并将其传递给测试组件之前,像这样

mount(<Details {...posts}/>)

然后我改变方式

mount(<Details {...posts} match={match}>)

它有效。

0 个答案:

没有答案