onClick不被称为ReactJS
在否决投票之前,我已经研究了很多其他的解决方案,但都没有找到解决这个问题的答案 我在尝试获取onClick属性以启动我的函数时遇到问题,下面是问题组件中的一部分: 建造商: 呈现: 我正在使用“react dom/server”从Express服务器渲染应用程序 下面是我渲染组件的方式:onClick不被称为ReactJS,reactjs,Reactjs,在否决投票之前,我已经研究了很多其他的解决方案,但都没有找到解决这个问题的答案 我在尝试获取onClick属性以启动我的函数时遇到问题,下面是问题组件中的一部分: 建造商: 呈现: 我正在使用“react dom/server”从Express服务器渲染应用程序 下面是我渲染组件的方式: exports.beatSubmission = (req, res) => { const appString = renderToString(<App type="beatSubmis
exports.beatSubmission = (req, res) => {
const appString = renderToString(<App type="beatSubmission"/>);
res.send(beatSubmissionTemplate({
body: appString
}))
}
exports.beatSubmission=(请求、回复)=>{
const appString=renderToString();
res.send(提交模板)({
正文:appString
}))
}
我看不出代码有任何问题。然而,我想到的唯一一件事是,如果你在某种函数中渲染
,比如映射和数组。如果是这样,您需要在返回之前在渲染函数中定义var self=this
,然后使用self.addToSubmissionFormCount
另外,我不建议在
标签中使用onClick处理程序将h5更改为锚定标签。因此,请替换:
(加上)再加一个节拍
与:
(加上)再加一个节拍
之后,你可以随心所欲地设计你的锚。例如,如果您希望在悬停时不使用光标,则添加
光标:无,您不应改变react的状态
更改:
this.state.submissionFormCount++
致:
this.state.submissionFormCount+1我认为您只是在服务器端渲染react组件。我认为这是因为您复制了以下代码:
exports.beatSubmission = (req, res) => {
const appString = renderToString(<App type="beatSubmission"/>);
res.send(beatSubmissionTemplate({
body: appString
}))
}
exports.beatSubmission=(请求、回复)=>{
const appString=renderToString(
renderToString());
有几种方法可以做到这一点。您可以在模板中手动添加一个脚本文件,其中包含为前端预打包的JS,也可以使用
我怀疑你读过react教程,它引导你走上同构(服务器/客户端渲染)路径。你可以在服务器、客户端或两者上运行react。在两者上运行react需要一些工作,但会产生一个“感觉”的应用程序更快。除了将
包装成一个
以提高web可访问性之外,我觉得代码还可以。您是完全在客户端还是全部在节点上加载应用程序?您关于如何使用express呈现应用程序的评论让我觉得您没有加载应用程序的客户端版本。@Parris我正在呈现(我相信)在客户端,页面正确呈现,我上面发布的标记是我的主要应用程序组件的子组件。@supercolude1337我怀疑您实际上只是在服务器端呈现。谢谢您的建议,但这仍然给我带来了同样的问题。我是否必须使用存储?@supercolude1337您可以避免使用redux、stores等。这里唯一重要的一点就是包含一个JS包。因此webpackIsomorphicTools.assets()
应该是您所需要的全部。您能详细说明最后一个注意事项吗?
addToSubmissionFormCount() {
alert('Here');
this.setState({
submissionFormCount: this.state.submissionFormCount++
});
}
exports.beatSubmission = (req, res) => {
const appString = renderToString(<App type="beatSubmission"/>);
res.send(beatSubmissionTemplate({
body: appString
}))
}
exports.beatSubmission = (req, res) => {
const appString = renderToString(<App type="beatSubmission"/>);
res.send(beatSubmissionTemplate({
body: appString
}))
}