如何提醒 React-JS 获取值

Posted

技术标签:

【中文标题】如何提醒 React-JS 获取值【英文标题】:How to alert React-JS fetch values 【发布时间】:2021-02-14 09:47:00 【问题描述】:

我有一个 Web API,它接受 3 个参数(例如:int EID、字符串 MUN、字符串 MUP),然后返回如下 JSON:

[
    
        "MemberID": 71,
        "MemberExamID": 1
    
]

现在我想在我的 React-JS 项目中提醒“MemberID”,当用户点击“提交”按钮时。 这也是我的 React-JS 代码的一部分:

export class LoginModal extends Component 
    constructor(props) 
        super(props);
        this.state =  MemberID: 0
        this.handleSubmit = this.handleSubmit.bind(this);
    

    handleSubmit(event) 
        event.preventDefault();
        fetch(process.env.REACT_APP_API + 'MemberExamValidation', 
            method: 'POST',
            headers: 
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            ,
            body: JSON.stringify(
                EID: event.target.ExamID.value,
                MUN: event.target.EDT_Username.value,
                MUP: event.target.EDT_Password.value
            )
        )
        .then(res => res.json())
        .then(data => 
            this.setState( MemberID: data.MemberID );
            alert(this.state.MemberID);
         ,
         (error) => 
             alert('Erroe');
         )
    

【问题讨论】:

有什么问题? 可能语法错误?你应该这样写 Promise --> codesandbox.io/s/inspiring-forest-ymzf7?file=/src/App.js 当我按下提交按钮时,它说取消定义 【参考方案1】:

setState 函数是异步的,这意味着如果您在设置后立即尝试读取该值,它将无法按照您的方式工作。试试这个 -

this.setState(
  MemberID: data.MemberID,
, () => 
  // read value here
  alert(this.state.MemberID)
);

在此处阅读有关 setState 回调的更多信息 - https://reactjs.org/docs/react-component.html#setstate

【讨论】:

您的代码中可能存在问题。在这里查看 Codesandbox - codesandbox.io/s/rough-flower-czk25?file=/src/App.js

以上是关于如何提醒 React-JS 获取值的主要内容,如果未能解决你的问题,请参考以下文章

React-js如何触发“ BeforeInstallPromptEvent”以启动“弹出”添加到主屏幕

react-js中如何从组件中取出props数据?

未找到模块:错误:无法解析 React-js?

javascript REACT-JS

Node-SASS 源映射不适用于 React-JS

无法使用 fontawesome 的 react-js 库显示图标