动态更改变量名称的一部分?

时间:2019-03-27 19:45:59

标签: reactjs

在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']}/>

3 个答案:

答案 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.gendermale,它将使用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']}/>