在React中,是否可以根据状态动态更改变量名称的一部分?
例如,我正在从JSON文件中提供几个组件信息。根据选择的性别(男性还是女性),我想从“ male_clothes.js”或“ female_clothes.js”中发送“地图集”。
JSX代码:
class App extends Component {
constructor(props) {
super(props)
this.state = {
current_gender: "male",
current_pants: 0,
}
<LimbSegment atlas={male_clothes[this.state.current_pants]['atlas']}/>
答案 0 :(得分:1)
const { current_pants, gender } = this.state // I assume gender is comming from the state
const clothes = gender === 'male' ? male_clothes : female_clothes
const atlas = clothes[current_pants].atlas
// Then:
<LimbSegment atlas={atlas}/>
答案 1 :(得分:0)
不确定我是否正确理解了您。
因此,如果state.gender
为male
,它将使用male_clothes
否则为female_clothes
<LimbSegment atlas={this.state.gender === 'male' ?
male_clothes[this.state.current_pants]['atlas'] :
female_clothes[this.state.current_pants]['atlas']}/>
答案 2 :(得分:0)
短之一:
<LimbSegment atlas={(this.state.someFlag ? male_clothes : female_clothes)[this.state.current_pants]['atlas']}/>
但是最好使用更详细的方法:
const clothes = this.state.someFlag ? male_clothes : female_clothes;
...
<LimbSegment atlas={clothes[this.state.current_pants]['atlas']}/>