Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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
Javascript 使用React以类似降价的方式向用户评论添加功能_Javascript_Reactjs_Coffeescript_Markdown - Fatal编程技术网

Javascript 使用React以类似降价的方式向用户评论添加功能

Javascript 使用React以类似降价的方式向用户评论添加功能,javascript,reactjs,coffeescript,markdown,Javascript,Reactjs,Coffeescript,Markdown,我正在开发一个React应用程序,用户可以在其中创建书面指南,这些指南通常引用地图上的图钉。我希望用户能够在他们的书面指南中以类似于标记的方式引用管脚,以便在指南的渲染版本中将管脚悬停在上方时高亮显示 但是,我不知道如何处理用户生成的文本,以便它能够调用文本呈现所在的react组件中的函数 我发现了一个关于如何使用处理点击事件的问题,我很乐意采用类似的方法,但我不知道如何在coffeescript中我的React组件的范围内获得onclick中调用的函数 以下是来自上面链接的公认答案: var

我正在开发一个React应用程序,用户可以在其中创建书面指南,这些指南通常引用地图上的图钉。我希望用户能够在他们的书面指南中以类似于标记的方式引用管脚,以便在指南的渲染版本中将管脚悬停在上方时高亮显示

但是,我不知道如何处理用户生成的文本,以便它能够调用文本呈现所在的react组件中的函数

我发现了一个关于如何使用处理点击事件的问题,我很乐意采用类似的方法,但我不知道如何在coffeescript中我的React组件的范围内获得onclick中调用的函数

以下是来自上面链接的公认答案:

var renderer = new marked.Renderer();
renderer.link = (href, title, text) => {
    renderer.link = (href, title, text) => {
        const interceptWithThisFunction = (e) => {
            console.log('click event caught', e);
        }
        return `<a onClick="interceptWithThisFunction" href="${href}" title="${title}">${text}</a>`;
    }
var renderer=new marked.renderer();
renderer.link=(href,title,text)=>{
renderer.link=(href,title,text)=>{
const interceptWithThisFunction=(e)=>{
console.log('click event capture',e);
}
返回``;
}
我不明白为什么这会在es6中工作……因为,当我在如下所示的coffeescript中对其进行编码时,我得到:Uncaught ReferenceError:InterceptWithThis函数未定义。

renderer = new marked.Renderer()
renderer.link = (href, title, text) ->
  interceptWithThisFunction = (e) ->
      console.log('click event caught', e)
  "<a onClick='interceptWithThisFunction' href='#' title='#{title}'>#{text}</a>"
renderer=new-marked.renderer()
renderer.link=(href,title,text)->
interceptWithThisFunction=(e)->
console.log('click event capture',e)
""

这是正确的方法吗?当前设置为interceptWithThisFunction的onClick是否有方法调用我的React组件上的函数?

我真的找不到通用的“React-marked”库。因此我可以假设,tokeniser可以返回这个React-flavored-marked中的JSX,然后您可以编写类似以下内容:

renderer.link = (href, title, text) => {
renderer.link = (href, title, text) => {
    const interceptWithThisFunction = (e) => {
        console.log('click event caught', e);
    }
    return (
      <a onClick={interceptWithThisFunction} href={href}>{text}</a>
    );
}
renderer.link=(href,title,text)=>{
renderer.link=(href,title,text)=>{
const interceptWithThisFunction=(e)=>{
console.log('click event capture',e);
}
返回(
);
}

如果不是这样的话,那么我只能建议将函数移到窗口,并将onclick处理程序添加到html中,比如
谢谢你的回答Bloomca!我相信原始海报所指的库是,但read me是从主read me借来的,所以我想我错过了区别!无论如何,我认为你的解释是p很可能是正确的,今晚我会进一步调查。