提取未返回值

时间:2018-10-21 08:25:53

标签: react-native

我是反应初学者,只想询问服务器并显示其答案。 我有以下代码:

我的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”一词没有显示在屏幕上(但在控制台日志中可见)吗?

1 个答案:

答案 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>
          );
      } 
}