Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
onClick不被称为ReactJS_Reactjs - Fatal编程技术网

onClick不被称为ReactJS

onClick不被称为ReactJS,reactjs,Reactjs,在否决投票之前,我已经研究了很多其他的解决方案,但都没有找到解决这个问题的答案 我在尝试获取onClick属性以启动我的函数时遇到问题,下面是问题组件中的一部分: 建造商: 呈现: 我正在使用“react dom/server”从Express服务器渲染应用程序 下面是我渲染组件的方式: exports.beatSubmission = (req, res) => { const appString = renderToString(<App type="beatSubmis

在否决投票之前,我已经研究了很多其他的解决方案,但都没有找到解决这个问题的答案

我在尝试获取onClick属性以启动我的函数时遇到问题,下面是问题组件中的一部分:

建造商:

呈现:

我正在使用“react dom/server”从Express服务器渲染应用程序

下面是我渲染组件的方式:

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
    }))
}