javascript - 反应切换开关显示/隐藏视图
问题描述
我被困在我的项目中。我需要在切换开关(开/关)上显示/隐藏两个下拉选项。
这是我的示例代码:
handleSwitch = (event, index) => {
// TODO if true then display the empty dropdown selectionss
console.log("event.target.checked", event.target.checked);
console.log("index", index);
this.setState({ toggleInputField: true });
}
{days.map((day, dayIndex) =>
<Container key={dayIndex}>
<Row>
<Col>
<Switch
nativeControlId='my-switch'
checked={regularHours && regularHours.periods && regularHours.periods[this.findArrayIndex(regularHours.periods, day.openDay, 'openDay')] ? true : false}
onChange={(e) => this.handleSwitch(e, dayIndex)} />
</Col>
<Col>
<select className="form-control m-b--15" value={day.openTime} name={'openTime' + dayIndex} onChange={(event) => this.handleAddTimes(event, day)}>
<option value="" key={0}>Select Time Open</option>
{
openingHours && openingHours.map((time, index) =>
<option value={time} key={index}>{time}</option>
)
}
</select>
</Col>
<Col>
<select className="form-control m-b--15" value={day.closeTime} name={'closeTime' + dayIndex} onChange={(event) => this.handleAddTimes(event, day)}>
<option value="" key={0}>Select Time Closed</option>
{
openingHours && openingHours.map((time, index) =>
<option value={time} key={index}>{time}</option>
)
}
</select>
</Col>
<Row>
</Container>)}
我只是不知道要跟踪选中的拨动开关并相应地显示下拉选择。
有任何想法吗?我很乐意为您提供任何帮助。谢谢!
解决方案
本质上,您需要使每一行成为一个组件,以便它们每个都可以控制自己的状态,或者您可以从父组件控制它们的状态。由于您只提供了代码的摘录,我假设您知道自己在 react 中的方式,并将提供一个使用功能组件和挂钩的示例,以简化操作。
function MyRow({day}) {
let [show, setShow] = useState(true)
return (
<Row>
<Col>
<Switch
nativeControlId='my-switch'
checked={show}
onChange={(e) => setShow(e.target.checked)} />
</Col>
{show &&
<Col>
<!-- Code here -->
</Col>
<Col>
<!-- Code here -->
</Col>
}
<Row>
)
}
function Main({days}){
return (
<Container>
{days.map((day, dayIndex) => <MyRow key={dayIndex} day={day} />)}
</Container>
)
}
我希望您可以将自己的逻辑应用于上述想法。免责声明:我没有测试代码,所以可能有一些错别字。
推荐阅读
- python - 如何重定向我的代码以搜索密码子?
- reactjs - “firebase.auth.EmailAuthProvider.credential”未定义(React Native)
- css - Vuetify v-img 自动增长到容器的大小,而不是它的 src 的大小
- haskell - GADT 的函子实例
- javascript - opensea 使用元掩码投标
- reactjs - 提交类型按钮 onClick 覆盖 Formik 表单的表单提交
- cmd - 在 cmd 上设置应用程序的关联性
- javascript - 如何取消 html 元素的样式?
- javascript - Node.js 获取目录中所有 0 字节的文件
- nuget - 有没有办法从 TeamCity 下载包(Nuget)?