내가했다가, 숨길 editing: true
로 상태를 변경하는 원인이 나는 SocialPostwithCSS
및 onClick
에 이름 <p>
하위 구성 요소와 <div>
과 <textarea>
이 나타날 것입니다 내가 사용하는 것이 this.textarea.focus
은 텍스트 영역이 ref={(input)=>{this.textarea=input}}
이고 문제가 없습니다.ReactJS은 - 얼마나 후하게 구성 요소에 초점을 얻을 수 있습니다 볼 수
영역을 자동 크기 조정해야하므로 NPM 패키지 TextareaAutosize
을 다운로드했습니다. 이제이 텍스트 영역에 초점을 맞추는 데 문제가 있습니다. 확인, npm TextareAutosize 파일에 class
이 있으며 상태 비 저장되지 않습니다. 현재 this.textarea
는 undefined
요약을 반환 : 나는 상태 변경 <TextareaAutosize>
을 표시하는 원인이 <div>
onClick
후 <TextareaAutosize />
에 초점을 맞출 수 있습니까? 다음은
파일 :
looking at the code에서import React, { Component } from 'react'
import SocialPostWithCSS from './SocialPostWithCSS'
import TextareaAutosize from 'react-autosize-textarea'
class SocialPost extends Component {
constructor(props) {
super(props)
this.state = {
message: this.props.socialPost.message,
editing: false
}
}
_clickToEdit() {
this.textarea.focus()
}
render() {
return (
<div>
{(!this.state.editing) ?
<div onClick={async()=>{await this.setState({editing: true});this._clickToEdit}}>
<SocialPostWithCSS >{this.state.message}</SocialPostWithCSS>
</div>
:<div>
<TextareaAutosize
onBlur={() => {this.setState({ editing: false})}}
type='text'
ref={(input)=>{this.textarea=input}}
value={this.state.message}
/>
</div>
}
</div>
)
}
}
export default SocialPost
너 선생님, 지역 천재입니다. 이것은 효과가있다! 내 진드기가 무슨 뜻인지 말해 줄 수있어? 이 코드 스 니펫, line 72-79'saveDOMNodeRef = ref => { const {innerRef} = this.props; if (innerRef) { innerRef (ref); } this.textarea = ref; ' –
'ref'는 구성 요소의 기본 DOM 노드에 대한 액세스를 제공합니다. 하지만 TextareaAutosize에는 dom 노드가 없으며 어쨌든 직접 연결할 수 없습니다. 대신, 그것은
TextAreaAutosize의 102 행에서 알 수 있듯이