<AceEditor
ref='aceEditor'
height='100%'
width='100%'
mode={ideLanguage}
theme={ideTheme}
fontSize={ideFontSize}
showGutter={true}
showPrintMargin={false}/>
这就是按钮
<Button
type='button'
buttonStyle='btn--primary--normal'
buttonSize='btn--medium'
onClick={SendCode}
>SUBMIT</Button>
这就是功能
const SendCode = () => {
console.log(this.refs.aceEditor.editor.getValue());
};
我做错了什么??
在最新的 React 版本中,建议对功能组件使用
React.useRef()
钩子,对类组件使用
React.createRef()
。您可以阅读更多详细信息 -
https://reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs
我可以猜测,您可能已经使用<React.StrictMode>
高阶组件打开了严格模式。这就是抛出错误/警告的原因。你应该做什么-
const aceEditorRef = useRef();
ref='aceEditor'
替换为
ref={aceEditorRef}
。
<AceEditor
ref={aceEditorRef}
height='100%'
width='100%'
mode={ideLanguage}
theme={ideTheme}
fontSize={ideFontSize}
showGutter={true}
showPrintMargin={false}/>
const SendCode = () => {
console.log(this.aceEditorRef.current.editor.getValue());
};