TS 上的 vue 中的道具未传递给 route.push

Props are not passed to route.push in vue on TS

我有一个简单的应用程序结构,table 和创建新项目的页面,要创建新项目,我使用主页上的按钮转到项目创建页面

initNewRow(): void {
    let someData: string = 'someText';
    this.$router.push({
        name: 'catalog-create___en',
        params: { someData: someData }
    });
}

我想在导航中传递一些参数,路由中没有给定的页面,因为我不需要在菜单中显示它

只有一个页面有table(没有创建元素的页面)

{
    id: 8,
    label: 'menuitems.Catalog.text',
    link: '/catalog/main',
    icon: 'ri-eye-line',      
    meta: {
        middleware: ['router-auth']
    }
},

打开props创建道具的页面,我没有,为什么看不懂

@Component({
    name: 'Create',
    props: ['someData']
})
export default class Catalog extends Vue {
    @Prop({ required: true })
    someData!: any;

    constructor() {
         super();
         this.someData = this.$route.params.someData;
         console.log(this.someData);
    }

如何正确初始化一个属性?它现在在控制台日志中给我一个错误:

Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "someData"

official documentation

中所写

这些都是可以使用的方法,你用的方法不行

const userId = '123'
router.push({ name: 'user', params: { userId } }) // -> /user/123
router.push({ path: `/user/${userId}` }) // -> /user/123
// This will NOT work
router.push({ path: '/user', params: { userId } }) // -> /user

将其更新为

this.$router.push({ name: 'create', params: { someData } });

感谢 Vue 开发工具,在这里可以找到您在项目中拥有的路线