我是反应初学者,只想询问服务器并显示其答案。 我有以下代码:
我的React代码是:
export default class AskServer extends Component {
interrogateServer = () => {
fetch('https://www.-----/test.php')
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson.myText)
return responseJson.myText
})
.catch((error) => {
console.error("pb occured");
});
}
render () {
return (
<View >
<Text> Answer of the server is </Text>
<Text> {this.interrogateServer()} </Text>
</View>
);
}
}
在服务器上,在PHP中只是
<?php
$z= '{
"myText": "hello"
}';
echo $z;
?>
但是显示的只是: “服务器的答案是”
您能解释一下为什么“ hello”一词没有显示在屏幕上(但在控制台日志中可见)吗?
答案 0 :(得分:0)
您必须使用this.state。提取完成后,组件将在this.state更改后重新呈现。
class AskServer extends Component {
state = {
text: null,
};
componentDidMount() {
this.interrogateServer();
}
interrogateServer = () => {
fetch('https://www.-----/test.php')
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson.myText)
this.setState({ text: responseJson.myText })
})
.catch((error) => {
console.error("pb occured");
});
}
render () {
return (
<View >
<Text> Answer of the server is </Text>
<Text> {this.state.text} </Text>
</View>
);
}
}