【问题标题】:Click event won't fire on click on iOS devices but works as intended on desktop点击事件不会在点击 iOS 设备时触发,但在桌面上按预期工作
【发布时间】:2018-01-31 10:57:25
【问题描述】:

我无法让我的 React 应用程序在移动 Safari 上以最佳方式运行。我的应用程序通常会在桌面上放置、发布、修补和删除,但在我的 iPhone 上不会这样做。我尝试在下面的 React 组件中添加“cursor:pointer”和 onTouchStart,但似乎没有任何效果。

 onSubmit(event) {
    const name = this.state.name;
    const instructor = cookies.get('instructor')._id;
    this.setState({
       submitted: true,
     });
    this.props.dispatch(actions.editCourse(name,this.props.match.params.cuid));
   }



  render() {
    if (this.state.submitted) {
       window.location.href = `https://young-mountain-65748.herokuapp.com /courses/${this.props.match.params.cuid}`;
    }
return (
    <div className="container">
        <div className="field-line">
          <label htmlFor="coursename">New Course Name:</label>
          <input
            id="coursename"
            name="coursename"
            value={this.state.name}
            onChange={this.updateName}
          />
        </div>
    </div>
    <div className="edit-course-buttons">
      <button
        className="edit-course"
        onClick={this.onSubmit}
        onTouchStart={this.onSubmit}>
        Edit Course
      </button>
    </div>
  </div>
);

} }

【问题讨论】:

  • 你在检查模拟器吗?
  • 不,我没有使用模拟器。只是检查我的手机

标签: ios reactjs mern


【解决方案1】:

我在 iOS 设备上也遇到了同样的问题。能够通过将 onClick 替换为触摸事件来克服这些问题。查看有关 ReactJS 中触摸事件的文档。您可以使用 onTouchStart 代替 onClick 看看它是否有效!所以你的按钮应该是这样的:

<button onTouchStart="{this.onSubmit}" onclick = "void(0)" ...>
</button>

我已按照接受的答案here 中的建议添加了onClick

https://facebook.github.io/react/docs/events.html#touch-events

检查类似的问题,根据answer 投票最多,您需要使用 touchevent 并将cursor: pointer; css 添加到您与点击事件关联的元素中。

【讨论】:

  • 嗨,是的,你昨天回复了我!我在按钮组件中尝试了 onTouchStart 和 onClick ,但没有成功。我应该删除 onClick 并仅将 onTouchStart 作为道具吗?这种方式还能在桌面上运行吗?
  • 嗯。即使完全删除 onClick 后仍然无法正常工作。
  • 你添加了css cursor:pointer;到按钮? --->
  • 已更新答案,请您试一试!
猜你喜欢
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多