【发布时间】:2019-08-07 23:58:25
【问题描述】:
我正在进行多项选择测验。对于每个问题,每个选项都实现为一个单选按钮。
当用户选择一个选项时,我想显示与他们选择的特定选项相关的文本。
到目前为止,我已经能够实现单选按钮并处理 onChange 事件。 但是,我不知道如何在选择一个选项时显示某些文本(并隐藏其他选项)。
import React from 'react';
import styled from '@emotion/styled'
class Budget extends React.Component {
state = {
studentLoanPayment: 0,
};
handleInputChange = event => {
const { name, value } = event.target;
console.log(name, value, event.target)
this.setState({ [name]: value });
/* the below code does not work
var parent = event.target.parent;
parent.find('DynamicText').show();
*/
};
render() {
const {
studentLoanPayment
} = this.state;
const totalMonthsDisplay = studentLoanPayment;
return (
<div>
<UL>
<Li>
<h4>
How much money should Leif put towards student loans
each month?
</h4>
</Li>
<li>
<Label>
<input
type="radio"
name="studentLoanPayment"
value="400"
onChange={this.handleInputChange}
/>
400
<DynamicText>hidden op1 text</DynamicText>
</Label>
</li>
<li>
<Label>
<input
type="radio"
name="studentLoanPayment"
value="500"
onChange={this.handleInputChange}
/>
500
<DynamicText>hidden op2 text</DynamicText>
</Label>
</li>
<li>
<Label>
<input
type="radio"
name="studentLoanPayment"
value="200"
onChange={this.handleInputChange}>
</input>
200
<DynamicText>hidden op3 text</DynamicText>
</Label>
</li>
</UL>
);
}
}
const DynamicText = styled.ul`
display:none;
`
【问题讨论】:
-
有两种方法可以做到这一点,或者使用条件 jsx 语句包装您的
<DynamicText>,该语句检查该输入的状态更新(您可能希望为每个收音机使用唯一的 id,以便您可以将该状态值用作显示布尔值),或使用 refs 将 DynamicText 与输入相关联。
标签: javascript reactjs radio-button