javascript - 根据父组件中的值动态加载名称
问题描述
有一个父组件,其中某些道具(例如名称,queryValue 和图像)到我的子组件,这是一个自定义下拉菜单,到目前为止,我正在根据下拉菜单中默认显示的条件检查显示名称,但现在会有更多数据与标志一起显示。我需要根据 parent 的值显示名称。
父.jsx
<SelectCountry
options={[
{
name: 'English (USA)',
queryValue: 'en',
flagIcon: USA,
},
{
name: 'Bahasa Indonesia',
queryValue: 'id',
flagIcon: ID,
},
]}
value={localStorage.getItem('locale')} />
选择国家.jsx
<div className={`${baseClassName}__selected-flag-container`}>
<img
src={require(value === "en" ? '../../assets/USA.svg' : '../../assets/indonesia.svg')}
alt='desc'
/>
{value === "en" ? options[0].name : options[1].name}
</div>
//COde for the Custom DropDown will be here
如上所述,由于只有两种语言,所以已经进行了条件检查及其工作,现在当添加更多语言时,不知道如何选择名称以及动态设置 img 标签中的 src。
解决方案
您所做的一切都有些错误,您Parent.jsx
是容器组件,因此它应该包含您的所有逻辑,所以为什么不传递适当的数据。
<SelectCountry
options={[
{
name: 'English (USA)',
queryValue: 'en',
flagIcon: USA,
src: '../../assets/USA.svg'
},
{
name: 'Bahasa Indonesia',
queryValue: 'id',
flagIcon: ID,
src: '../../assets/indonesia.svg'
},
]}
value={localStorage.getItem('locale')}
/>
& 在您SelectCountry.jsx
刚刚展示的演示组件中。
常量 { 选项 } = 要求('joi');
options.map((option) => {
<div className={`${baseClassName}__selected-flag-container`}>
<img src={option.src} alt='desc' />
{option.name}
</div>;
});
我还没有测试,所以你可能需要调整代码。Dan有一些关于 Redux 的精彩免费课程,他在其中教授更多关于容器和演示组件的内容,您可以在这里查看https://egghead.io/instructors/dan-abramov。希望这对你有帮助️️
推荐阅读
- sql - 与条件相关的前 1 名
- node.js - Error while inserting polygon coordinates to Mongo DB using geojson and mongoose
- sql-server - 具有分页但不显示行号的 Web 服务
- scala - 具有继承类型的辅助模式无法推理
- c# - 将 DataGridView 转换为数据表
- react-native - 在 ReactNative 中设置 RevenueCat 购买会引发“NativeModule”不能为空错误
- sql - 动态显示给定日期的月份
- python-2.7 - 尝试使用 boto3 启用 AWS s3 存储桶的版本控制时访问被拒绝
- excel - excel公式匹配单元格背景颜色
- javascript - /* @flow strict */ 在所有源文件上