TypeError: this.input.focus 不是一个函数
作者: alefnula创建于 2017年11月22日更新于 2022年2月16日
标签bug
这是产生此错误的最简单的应用程序(使用 create-react-app 生成):
import React, { Component } from 'react';
import {TextInput} from 'react-desktop/macOs'
class App extends Component {
focus() {
this.input.focus();
}
render() {
return (
<div>
<TextInput ref={(input) => { this.input = input; }}/>
<button onClick={(e) => this.focus()}>Focus</button>
</div>
);
}
}当我点击按钮时,我得到:
App.js:8 Uncaught TypeError: this.input.focus is not a function
at App.focus (App.js:8)
at onClick (App.js:15)
at HTMLUnknownElement.callCallback (react-dom.development.js:540)
at Object.invokeGuardedCallbackDev (react-dom.development.js:579)
at Object.invokeGuardedCallback (react-dom.development.js:436)
at Object.invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:450)
at executeDispatch (react-dom.development.js:834)
at executeDispatchesInOrder (react-dom.development.js:856)
at executeDispatchesAndRelease (react-dom.development.js:954)
at executeDispatchesAndReleaseTopLevel (react-dom.development.js:965)
at Array.forEach (<anonymous>)
at forEachAccumulated (react-dom.development.js:933)
at processEventQueue (react-dom.development.js:1105)
at runEventQueueInBatch (react-dom.development.js:3600)
at handleTopLevel (react-dom.development.js:3609)
at handleTopLevelImpl (react-dom.development.js:3340)
at batchedUpdates (react-dom.development.js:11066)
at batchedUpdates (react-dom.development.js:2323)
at dispatchEvent (react-dom.development.js:3414)虽然我看到它已经实现了:https://GitHub.com/gabrielbull/react-desktop/blob/master/src/textInput/macOs/textInput.js#L146
内容来源: gabrielbull/react-desktop