Reactjs에 체크 상자와 텍스트 입력 대신 텍스트 레이블이 결합 된 Ui 구성 요소를 작성하려고합니다. 확인란을 선택하면 사용자가 텍스트 입력을 변경할 수 있습니다. 체크하지 않으면 사용자가 그렇게 할 수 없습니다. 최종 목표는 구성 요소 외부에서 목록으로 또는 메뉴 항목으로 체크 된 모든 textinputs valus를 렌더링하는 것입니다. 그 모양은 다음과 같아야합니다. Checkbox with Text input확인란과 텍스트 입력을 reactjs에서 결합하는 방법
아무도 모르게 어떻게해야합니까? 새로운 reactjs에 새롭고 두 컴퍼넌트 (여기서는 체크 박스와 텍스트 입력 사이, "콤보"구성 요소와 외부 렌더링 목록 사이) 사이에서 로직을 전달하는 방법을 조금 혼란스럽게 생각합니다. 미리 감사드립니다. !
EDIT1는 : 글쎄 구성 요소를 구축하는 데 성공하지만 난 아이들이 실제로 마법이 일어날 수 있도록하기 위해 부모 핸들러 (handlerCheckbox, handlerInput)를 호출 할 캔트.
뭐가 잘못 되었나요? 이것은이다
export default class Text extends React.Component {
constructor(props) {
super(props);
this.state = {
textItems: [{id:0,inputValue:'text',isChecked:true},{id:1,inputValue:'text',isChecked:true}
,{id:2,inputValue:'text',isChecked:true},{id:3,inputValue:'text',isChecked:true}]
};
this.handleCheckbox = this.handleCheckbox.bind(this);
this.handleInput= this.handleInput.bind(this);
}
handleCheckbox(e,id) {
var stateCopy = Object.assign({}, this.state);
stateCopy.textItems[id].isChecked = e.target.value;
this.setState(stateCopy);
}
handleInput(e,id){
var stateCopy = Object.assign({}, this.state);
stateCopy.textItems[id].text = e.target.value;
this.setState(stateCopy);
}
render() {
return (
<div>
<hr className="divider-long"/>
<UI.sectionDividerLabeled label="Show/Hide Text"/>
<hr className="divider-long"/>
<p>Here you can show\hide your text</p>
<div>
<CheckboxTxtInput id={this.state.textItems[0].id} isChecked={this.state.textItems[0].isChecked}
inputValue={this.state.textItems[0].inputValue} handleInput={this.handleInput}
handleCheckbox={this.handleCheckbox} />
<CheckboxTxtInput id={this.state.textItems[1].id} isChecked={this.state.textItems[1].isChecked}
inputValue={this.state.textItems[1].inputValue} handleInput={this.handleInput}
handleCheckbox={this.handleCheckbox}/>
<CheckboxTxtInput id={this.state.textItems[2].id} isChecked={this.state.textItems[2].isChecked}
inputValue={this.state.textItems[2].inputValue}
handleInput={this.handleInput} handleCheckbox={this.handleCheckbox}/>
<CheckboxTxtInput id={this.state.textItems[3].id} isChecked={this.state.textItems[3].isChecked}
inputValue={this.state.textItems[3].inputValue} handleInput={this.handleInput}
handleCheckbox={this.handleCheckbox}/>
</div>
<RenderText />
</div>
)
}
}
내가 당신을 똑바로 해줄 지 알려주세요. 두 개의 구성 요소 (하나는 체크 박스 용이고 다른 하나는 텍스트 입력 용)를 만들어서 부모 역할을하는 세 번째 구성 요소로 마무리해야합니까? 체크 상자 구성 요소와 텍스트 입력 구성 요소가 상태가 있어야합니까? 아니면 그냥 부모? 메신저가 어떻게 parnet이 아이들을 제어 하는지를 고민하는 데 어려움을 겪고있다. (체크 박스가 체크되어 있으면 입력 텍스트 필드가 어떻게 작동하는지 알 수있다.) 고마워. –
네, 맞아. 두 자녀 중에는 부모가없는 상태가 없습니다. 간단히 소품을 사용하여 각 자녀의 부모에게 상태를 전달하십시오. – Chris