как я помещаю это.состояние внутрь «»?

#reactjs #state

#реагирует на #государство

Вопрос:

здесь я хочу получить доступ к «this.state.select1» и «this.state.select2» в качестве атрибутов объекта фактора в обработчике событий handleClick. как я помещаю их в «», чтобы они не стали строкой? потому что выход дает мне Нэн.

Это желаемая часть моего кода:

 const factor = {  kilometer: 1,  meter: 1000,  centimeter: 100000,  millimeter: 1000000 }  class App extends React.Component {  constructor(props) {  super(props);  this.state = {  text: '',  select1: '',  select2: '',  result: 0  }  }  handleChange1 = (e) =gt; {  this.setState({  text: e.target.value  }  );  }  handleChange2 = (e) =gt; {  this.setState({  select1: e.target.value  }  );  }  handleChange3 = (e) =gt; {  this.setState({  select2: e.target.value  }  );  }  handleClick = () =gt; {  this.setState({  result: (parseInt(this.state.text) * factor['this.state.select1']) /  factor['this.state.select2']  });  }  

выход:

введите описание изображения здесь

Комментарии:

1. Вы не хотите factor['this.state.select1'] , вы хотите factor[this.state.select1] (обратите внимание на отсутствие кавычек)

2. @ВОЗРАСТ это сработало. большое спасибо

3. @Бен, большое спасибо. но фактор[this.state.select1] дает мне NaN на выходе. фактор[ ${this.state.select1} ] это сработало. за «$» и после «}» есть » ` «. это не отображается.

4. Я подозреваю, что это потому, что он чувствителен к регистру, у вашего factor объекта все написано в нижнем регистре, но на вашем скриншоте первая буква прописная. Вы можете использовать toLowerCase , чтобы это работало.

5. @Ben, конечно, значения, существующие в теге опции внутри тега select, указаны в нижнем регистре. и я думаю, что это должно совпадать с именами факторов. правильно ли это?