Javascript 在Android Mobile Browser上调用Window.scrollTo()会导致TypeError:找不到与提供的签名匹配的函数
我有一个React项目-我正在将一个Javascript 在Android Mobile Browser上调用Window.scrollTo()会导致TypeError:找不到与提供的签名匹配的函数,javascript,android,reactjs,browser,cross-browser,Javascript,Android,Reactjs,Browser,Cross Browser,我有一个React项目-我正在将一个onClick附加到标题导航链接,该链接滚动到页面上的特定元素。我正在生成React REF,并使用元素的Y位置输入窗口。scrollTo()函数调用 代码如下: class Component extends React.Component { constructor(props) { this.menuRef = React.createRef() } scrollToRef(ref, instructions,
onClick
附加到标题导航链接,该链接滚动到页面上的特定元素。我正在生成React REF,并使用元素的Y位置输入窗口。scrollTo()
函数调用
代码如下:
class Component extends React.Component {
constructor(props) {
this.menuRef = React.createRef()
}
scrollToRef(ref, instructions, event, arg2) {
if (event) event.preventDefault()
let pageOffSet = 200
if (this.state.topOfPage) {
pageOffSet = 200
} else if (!this.state.topOfPage) {
pageOffSet = 150
}
window.scrollTo({top: (ref.current.offsetTop - pageOffSet), behavior: "smooth"})
}
render(){return(
// Pseudocode...
<button onClick={() => this.scrollToRef(this.menunRef, "contact", event)}
<div ref={this.menuRef}/>
)}
}
类组件扩展React.Component{
建造师(道具){
this.menuRef=React.createRef()
}
scrollToRef(参考、说明、事件、arg2){
if(event)event.preventDefault()
设pageOffSet=200
if(此.state.topOfPage){
pageOffSet=200
}否则如果(!this.state.topOfPage){
pageOffSet=150
}
scrollTo({top:(ref.current.offsetTop-pageOffSet),行为:“平滑”})
}
render(){return(
//伪代码。。。
this.scrollToRef(this.menunRef,“联系人”,事件)}
)}
}
预期行为:
窗口向下滚动到ref Y坐标,根据函数接收到的“指令”对状态变化作出反应(我省略了setState调用)
实际行为:
在大多数浏览器中工作。
在默认Android浏览器中,我得到以下错误:
Github上的组件完整代码:
工作演示:
请帮帮我,我正绞尽脑汁试图调试这个。我不知道如何调试移动浏览器,如何在移动safari或android浏览器上查看
console.log()
的输出?这是scrollTo
的新ish签名,它过去只接受scrollTo(x,y)
,但现在它也可以接受对象。android浏览器一定不知道新版本。您可以使用一个补丁来修补它
如果您有Mac电脑,您可以通过桌面Safari调试iOS Safari:谢谢您的回答。SmoothScroll polyfill确实修复了崩溃。不幸的是,我没有Mac电脑。你知道有什么方法可以调试三星浏览器吗?