javascript - Vue.js - 属性或方法未在实例上定义,但在渲染期间引用
问题描述
我收到错误“属性或方法“processForm”未在实例上定义,但在渲染期间被引用”和错误“TypeError:_vm.processForm 不是函数”。我通过在我的联系表单中调用 processForm 函数@submit.prevent="processForm"
。从这一点开始,我不确定该怎么做。任何帮助表示赞赏。
渲染.js:
const mjml2html = require('mjml')
const Vue = require('vue')
const app = new Vue({
data: {
el: '#signupform',
name: ''
},
template: `
<mj-section>
<mj-column>
<mj-text font-size="20px" color="#F45E43" font-family="helvetica">Hello {{ name }}</mj-text>
</mj-column>
</mj-section>`,
methods: {
processForm: function() {
renderer.renderToString(app).then(html => {
const htmlWithoutDataServerRenderedAttribute = html.replace(`data-server-rendered="true"`,'')
const plainHtml = mjml2html(htmlWithoutDataServerRenderedAttribute)
console.log(plainHtml.html)
})}}})
const renderer = require('vue-server-renderer').createRenderer({
template: `
<mjml>
<mj-body>
<!--vue-ssr-outlet-->
</mj-body>
</mjml>`
})
还有我的表单模板:
<template>
<div class="sign_up" id="signupform">
<main role="main">
<div class="SignUp_container">
<form class="form-signup" @submit.prevent="processForm">
<input type="text" name="name" placeholder="Enter First Name" required/>
<input type="text" name="lname" placeholder="Enter Last Name" required/>
<input type="email" name="mailaddr" placeholder="Your email address" required/>
<div class="sign_cancel_buttons">
<router-link to="/">
<button id="canlbtn" type="cancel" class="clbtn">
Cancel
</button>
</router-link>
<button id="signupbtn" type="submit" name="sendmsg-button" class="signbtn">
Sign Up
</button>
</div>
</form>
</div>
</main>
解决方案
推荐阅读
- javascript - 在各种单独的多边形之外掩盖传单地图时的奇怪行为
- javascript - 在 ComponentDidUpdate 中打印一个组件 react
- bash - 根据内存问题将文本附加到第二行的末尾
- amazon-web-services - 带有时区偏移的红移 to_timestamp
- python - 如何在python中重新排列字符串行
- java - 如何将 Mockito.doAnswer() 与没有参数的 void 方法一起使用?
- c# - 访问 Windows 10 任务管理器进程列表
- python - 将目录中的所有文件连接到单个 CSV 时,Pandas 中的“EmptyDataError: No columns to parse from file”
- javascript - 检测网络流量中的 Javascript 注入
- python - 在两个线程中读取和写入套接字