简体   繁体   English

React Router无法使用JQuery动态生成的href链接

[英]React router not working with dynamically generated href links using jquery

Im new to React.js and im using jQuery in my react project to identify mouse and click event, based on that cloning the navigation <li> list of <a> tags and displaying in targeted div id, everything working fine, but clicking on the newly generated link loading the whole page rather than small part of the screen, i know newly cloned jquery code has href and but react wanted <Link> and here is my minified version of code to understand the problem 我是React.js的新手,并且在我的react项目中使用jQuery来识别鼠标和click事件,基于克隆<a>标签的导航<li>列表并显示在目标div id中,一切正常,但是单击新生成的链接加载整个页面而不是屏幕的一小部分,我知道新克隆的jquery代码具有href ,但会响应想要的<Link> ,这是我的代码的简化版本,以了解问题

// minified code 
class Sidebar extends Component {


    componentDidMount() {

        $(".navigation").on("mouseenter click", ".navigation-menu > li", function() {
            generateLinks($(this))
        });


        function generateLinks(e) {
            var links = e.find("li");
            var generatedMenuLinks = links.clone().appendTo("#targetDiv");

            // rest of the code 
        }
    }


    render() {
        return(
            <div className="navigation">
                <ul className="navigation-menu">
                    <li class="menu1">
                        <Link to="/menu1/data1">Menu1Data1</Link>
                        <Link to="/menu1/data2">Menu1Data2</Link>
                        <Link to="/menu1/data3">Menu1Data3</Link>
                    </li>
                    <li class="menu2">
                        <Link to="/menu2/data1">Menu2Data1</Link>
                        <Link to="/menu2/data2">Menu2Data2</Link>
                        <Link to="/menu2/data3">Menu2Data3</Link>
                    </li>
                    <li class="menu3">
                        <Link to="/menu3/data1">Menu3Data1</Link>
                        <Link to="/menu3/data2">Menu3Data2</Link>
                        <Link to="/menu3/data3">Menu3Data3</Link>
                    </li>
                </ul>
            </div>
        );
    }

}

Thank you in advance 先感谢您

class Sidebar extends Component { 侧栏类扩展Component {

render() {
    return(
        <div className="navigation" onClick={() => {
            /*

            DO WHAT EVER YOU WANT HERE YOU CAN
            USE .map() ON AN ARRAY THAT HAS YOUR 
            DATA AND RETURN <li> WITH WHAT EVER YOU
            WANT. MAKE SURE TO USE CURLY BRACES 
            ANY WHERE YOU WANT TO INCLUDE JAVASCRIPT!
            */ 
        }}>
            <ul className="navigation-menu">
                <li class="menu1">
                    <Link to="/menu1/data1">Menu1Data1</Link>
                    <Link to="/menu1/data2">Menu1Data2</Link>
                    <Link to="/menu1/data3">Menu1Data3</Link>
                </li>
                <li class="menu2">
                    <Link to="/menu2/data1">Menu2Data1</Link>
                    <Link to="/menu2/data2">Menu2Data2</Link>
                    <Link to="/menu2/data3">Menu2Data3</Link>
                </li>
                <li class="menu3">
                    <Link to="/menu3/data1">Menu3Data1</Link>
                    <Link to="/menu3/data2">Menu3Data2</Link>
                    <Link to="/menu3/data3">Menu3Data3</Link>
                </li>
            </ul>
        </div>
    );
}

} }

Try something like what I dropped in there. 尝试类似我掉进去的东西。 Read the comment in the arrow function. 阅读箭头功能中的注释。 I hope that helps. 希望对您有所帮助。 Like Boy With Silver Wings said React doesn't play well with jQuery. 就像Boy With Silver Wings所说的那样,React在jQuery中不能很好地发挥作用。 It uses JSX. 它使用JSX。 Suerte 苏尔特

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM