Я только начинаю изучать реагирование, и одним из моих первых вариантов использования является создание кнопки, где в зависимости от того, нажимает ли пользователь на включение / выключение, я вызову выборку и передам эту информацию в одну из переменных. функция для каждого типа кнопки. Поэтому я решил, что могу просто передать значение в качестве реквизита и использовать его для вызова выборки. Вы увидите это, когда я попытаюсь передать "this.props.statusnumber".
К сожалению, я получаю следующую ошибку;
Ошибка разбора: это зарезервированное слово ...
Вот мой код, любая помощь будет принята с благодарностью, так как я ничего не могу найти в Интернете.
import React from 'react';
const API = 'https://use1-wap.tplinkcloud.com/?token=HIDDEN';
let opts = {"method":"passthrough", "set_dev_alias":{"alias":"supercool plug"}, "params": {"deviceId": "HIDDEN", "requestData": "{\"system\": {\"set_relay_state\":{\"state\":0}}}" }};
let headerInfo = {'Content-Type': 'application/json','Version':'1','q': '0.01'};
let statusnumber = {};
export class Name extends React.Component {
constructor(props) {
super(props);
this.state = {
position: "off",
object: [],
};
this.switchStatus = this.switchStatus.bind(this);
this.statusnumber = this.statusnumber.bind(this);
}
switchStatus() {
opts.params.requestData = "{\"system\":{\"set_relay_state\ {\"state\":"+{this.props.statusnumber}+"}}}";
let positionStatus = (this.props.statusnumber === 0) ? "off" : "on";
console.log(this.props.statusnumber);
fetch(API, {
method : 'POST',
headers: headerInfo,
body : JSON.stringify(opts)
})
.then(response => response.json())
.then(data => this.setState({ object: data.object, position: positionStatus}))
};
render() {
const { object } = this.state;
return (
<div>
<button onClick={this.switchStatus} statusnumber={1}>On</button>
<button onClick={this.switchStatus} statusnumber={0}>Off</button>
<p>Current position: {this.state.position}</p>
<p>testing function</p>
</div>
);
}
}