使用带有Href的ReactModal按钮,无法正常工作。不确定为什么

时间:2017-12-12 15:45:43

标签: javascript reactjs react-modal

我很反应并且已经重新启动了我的个人网站。我遇到的问题是我的按钮,链接(与href)链接到我的JSfiddle每个组合演示不起作用。我不确定我是否没有正确绑定或者除了模态打开时问题究竟是什么,Demo按钮不起作用。关闭模式按钮工作正常。请参阅下面的代码。

import React from 'react';
import ReactModal from 'react-modal';

class Project extends React.Component {
constructor () {
    super();
        this.state = {
          showModal: false
    };

    this.handleOpenModal = this.handleOpenModal.bind(this);
    this.handleCloseModal = this.handleCloseModal.bind(this);
  }

handleOpenModal() {
    this.setState({ showModal: true});
}

handleCloseModal() {
    this.setState({ showModal: false});
}

componentWillMount() {
    ReactModal.setAppElement('body');
}

render() {
    const { details } = this.props;

    return (
        <li className="Project">
            <div onClick={this.handleOpenModal}>
                <img className="Project-image" src={'projects/' + details.image} alt={details.name}/>
                <div className="Project-overlay">
                    <p>{details.name}</p>
                </div>
            </div>
            <div >
                <ReactModal 
                    isOpen={this.state.showModal} 
                    contentLabel="This is my Modal" 
                    shouldCloseOnOverlayClick={true}
                    onRequestClose={this.handleCloseModal}
                >
                  <div className="modal-header">
                      <h3>{details.name}</h3>
                  </div>
                  <div className="modal-body">
                      <img className="Project-image" src={'projects/' + details.image} alt={details.name} />
                      <p className="desc-body">{details.desc}</p>
                      <p className="desc-body">{details.link}</p>
                  </div>
                  <div className="modal-footer">
                      { details.havLink && <button className="button" href={details.link}>Click for Demo!</button> }
                      <button className="button" onClick={this.handleCloseModal}>Close Modal</button>
                  </div>
                </ReactModal>

            </div>
            <div className="Project-tag">
                <p>{details.tag}</p>
            </div>
        </li>
    )
  }
}

const props = {};

export default Project;

问题出在“模态 - 页脚”类的第一行。此按钮将显示havLink属性是否为true。此数据正从另一个JS文件导出。所有其他(图像,描述,模态标题)都正确导入,甚至我设置的链接正确导入但按下按钮时没有像我预期的那样激发。我在React dev工具中也没有看到任何错误。

{details.link}作为href不会将我路由到指定的链接。该链接将显示在段落标记中(只是为了查看是否填充了正确的链接)。

如果需要其他任何内容,请告诉我,我希望解决方案就像错误的绑定一样简单。提前谢谢!

1 个答案:

答案 0 :(得分:1)

<button>没有href属性。您应该使用锚元素<a>。对于锚点,您可以传递任何classstyle,使其看起来像一个按钮,但它仍然是一个锚元素,而不是按钮。