ReactJS의 입력 값을 수동으로 지우려고합니다. 지금은 필드의 값을 업데이 트하여 부모 애플 리케이션의 상태를 업데이 트하고 부모 애플 리케이션의 상태가 "Enter"키를 누르면 재설정되므로 설정을 가지고 있지만 일치하도록 값을 지울 입력을 얻을 수 없습니다 부모 앱의 상태.부모의 상태를 기반으로 ReactJS 입력의 상태를 수동으로 변경합니다.
나는 이제 막 시작 했으므로 코드에 많은 문제가 있다는 것을 확신합니다. 제공 할 수있는 도움에 감사드립니다.
class AddNote extends Component {
componentWillUpdate() {
console.log(store.getState().searchHandler.searchTerm);
this.state = {searchTerm: store.getState().searchHandler.searchTerm};
}
constructor() {
super();
this.state = {
searchTerm: undefined
}
}
render() {
const {
onAddClick,
onSearchUpdate,
searchHandler,
} = this.props;
let searchTermInput;
return (
<div>
<input
ref={node => {
searchTermInput = node;
}}
value={this.state.searchTerm}
onChange={this.props.onChange.bind(this)}
onKeyPress={(e) => {
let searchTermToPass = searchTermInput.value;
onAddClick(e, searchTermToPass);
}}
/>
</div>
);
}
class RecollectApp extends Component {
componentWillUpdate() {
console.log("We're updating!");
}
render() {
const {
notes,
searchHandler,
} = this.props;
return (
<div>
<AddNote
onAddClick={(e, searchTerm) => {
if (e.charCode === 13) {
store.dispatch({
type: 'ADD_NOTE',
id: nextNoteID++,
title: searchTerm,
});
store.dispatch({
type: 'RESET_STATE',
});
}
}
}
onChange={(e) => {
store.dispatch({
type: 'UPDATE_STATE',
searchTerm: e.target.value,
});
this.value = "";
}}
/>
<NoteList
notes={notes}
onNoteClick={id =>
store.dispatch({
type: 'SELECT_NOTE',
id,
})
}
/>
</div>
);
}
}