FlexibleInput이라는 상태 비 저장 구성 요소가 있습니다.ReactDOM Ref children (모범 사례)의 값 재설정
import React, { PropTypes } from 'react'
export default function FlexibleInput({
id,
label,
defaultValue,
type,
onChange,
}){
let fieldClass = `${id}-field`
return (
<fieldset className={fieldClass}>
<label htmlFor={id}>{label}</label>
<input
key={id}
id={id}
type={type}
defaultValue={defaultValue}
onChange={onChange}
/>
</fieldset>
)
}
FlexibleInput.propTypes = {
id: PropTypes.string.isRequired,
label: PropTypes.string.isRequired,
defaultValue: PropTypes.string.isRequired,
type: PropTypes.string.isRequired, // accepts "text", "password" atm.
onChange: PropTypes.func.isRequired,
}
이 FlexibleInput은 AddNote라는 양식으로 사용됩니다.
<form
className="note-list__add-note"
onSubmit={this.addNote}
ref={`${this.props.type}-addNoteForm`}
>
<FlexibleInput
id="note"
label="Awaiting changes..."
type="text"
defaultValue=""
onChange={(e) => this.setState({ content: e.target.value })}
/>
this.addNote 기능을 이용하여 제출 후 ... I는 FlexibleInput 입력 값을 재설정 할 수 있도록하려는 것이다. 나는 못생긴 엉덩이 해킹 버전을 관리했습니다
... 제대로 값을 재설정 관리
this.refs[`${this.props.type}-addNoteForm`]
.childNodes[0].childNodes[1].value = ''
. 아마도 FlexibleInput의 구조가 변경 될 수 있기 때문에 변경되기 쉽습니다. 나는 잘 모르겠다.
하지만 내 주요 질문은, 내가
this.refs[bla bla].find(#input)
정도의 정렬을 할 수있는 방법은 무엇입니까?
ref
에 대해 api를 사용할 수 있는지 여부는 React/ReactDOM 문서에서 분명하지 않습니다.
감사합니다.
addNote() {
this.setState({ content: '' });
}
:
<form
className="note-list__add-note"
onSubmit={this.addNote}
ref={`${this.props.type}-addNoteForm`}
>
<FlexibleInput
id="note"
label="Awaiting changes..."
type="text"
defaultValue=""
value={this.state.content}
onChange={(e) => this.setState({ content: e.target.value })}
/>
그럼 그냥 this.addNote
방법 내에서 콘텐츠 값을 다시 설정해야 : 입력의 값이 구성 요소의 상태를 사용하여 설정된다
이전에 시도했을 때 "값"을 편집 할 수 없었지만 지금은 (몇 달 후) 내가이 작업을 수행하고있어 예상대로 작동하고 있습니다. 내 끝에 버그가 있거나 무엇이 있는지는 확실하지 않지만 제어 된 구성 요소를 사용하는 것은 길 일 것 같습니다! 감사합니다 :) –
당신이 사용하고있는 React의 버전을 기억하십니까? 어느 쪽이든 내가 도울 수있어서 기쁩니다! – Pineda
불행히도. 나는 국가를 제대로 묶는 것이 나의 실패일지도 모르고, '라이브 편집'이나 입력 값의 변화가 보이지 않도록 소품을 사용하고 있었다고 생각한다. –