Reactjs setState不使用导入类组件
我在App.js中制作了一个类组件标记&导入 在App.js中,有一个api具有带有授权密钥(即令牌)的标题 到目前为止,我已经尝试过这个代码Reactjs setState不使用导入类组件,reactjs,react-native,Reactjs,React Native,我在App.js中制作了一个类组件标记&导入 在App.js中,有一个api具有带有授权密钥(即令牌)的标题 到目前为止,我已经尝试过这个代码 import React, {Component} from 'react'; import Token from './Token'; class App extends Component { constructor(){ super(); this.state = { sliders: '',
import React, {Component} from 'react';
import Token from './Token';
class App extends Component {
constructor(){
super();
this.state = { sliders: '', auth_key: ''};
}
componentWillMount(){
this.setState({
auth_key: <Token />
});
}
componentDidMount = () => {
//POST json
var dataToSend = { userid: '223' };
//POST request
fetch('API/PATH', {
method: 'POST', //Request Type
body: dataToSend, //post body
headers: {
'Content-Type': 'application/json',
'Authorization': this.state.auth_key
},
})
.then(response => response.json())
.then(responseJson => {
this.setState({ sliders: responseJson });
alert(JSON.stringify(responseJson));
})
.catch(error => {
console.error(error);
});
}
render(){
return this.state.sliders;
}
}
export default App;
为什么令牌必须是一个组件?因为我必须在整个项目中使用此令牌来访问Rest ApiCan,您可以共享
令牌的代码吗?。如果它只是一个字符串,您不必将其作为一个组件,只需导出字符串,整个项目仍然可以使用它。顺便说一句,您应该确保这个密钥不是私有的。您可以定义一个共享函数来实现这一点,它也可以工作。如果您需要帮助设置,只需显示
组件内容,这样我们就可以将其重构为一个返回令牌的简单函数。编辑了我的问题,请检查令牌为什么必须是一个组件?因为我必须在整个项目中使用此令牌来访问Rest ApiCan,您可以共享令牌的代码吗?。如果它只是一个字符串,您不必将其作为一个组件,只需导出字符串,整个项目仍然可以使用它。顺便说一句,您应该确保这个密钥不是私有的。您可以定义一个共享函数来实现这一点,它也可以工作。如果您需要帮助设置,只需显示
组件内容,这样我们就可以将其重构为一个简单的函数,返回令牌。编辑我的问题,请检查
import {Component} from "react";
export default class Token extends Component{
constructor(){
super();
this.state = {tokenid: ''};
}
componentDidMount = () => {
let formBody = { usertoken: '223' };
fetch('API/PATH', {
method: 'POST',
body: formBody,
})
.then(response => response.json())
.then(responseJson => {
this.setState({
'tokenid' : responseJson.authtoken
})
})
.catch(error => {
console.error(error);
this.setState({
'tokenid' : ''
})
});
}
render(){
return this.state.tokenid;
}
}