gpt4 book ai didi

javascript - 如何在第二个 JavaScript 文件中的函数中设置状态?

转载 作者:行者123 更新时间:2023-12-03 06:10:38 25 4
gpt4 key购买 nike

我在 app.js 中有一个组件,它正在调用第二个 JavaScript 文件 client.js 中的函数,我希望设置 showError 的状态当 createTimer 函数失败并且 checkStatus 抛出错误时, 为 true。这样我就可以在函数失败时显示 ErrorSegment

我收到的错误是:client.js:93 Uncaught (in Promise) TypeError: Cannot read property 'setState' of undefined

createTimer函数失败时如何显示错误段?

额外的问题,假设 5 秒后或每当我执行另一个操作时,如何有效地将状态恢复为 false。

app.js:

const TimersDashboard = React.createClass({
getInitialState: function() {
return {
timers: [] ,
showError: false,
};
},
createTimer: function (timer) {
client.createTimer(t);
},
render: function () {
return (
<ErrorSegment
showError={this.state.showError}
/>
);
},
});

客户端.js:

window.client = (function () {
function createTimer(data) {
return fetch('/api/timers', {
method: 'post',
body: JSON.stringify(data),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
}).then(checkStatus)
.catch(onError);
}

function onError() {
this.setState({ showError: true; });
}

return {
createTimer,
};
}());

最佳答案

onError 作为 TimersDashboard 组件的一部分,而不是 client.js,并将其传递到 createTimer 中> 除了数据之外的功能:

    function createTimer(data, onError) { // onError is no longer a part of client.js 
// it comes from TimersDashboard

关于javascript - 如何在第二个 JavaScript 文件中的函数中设置状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com