它几乎添加了一个对象,该对象包含来自主窗体的子窗体的值。
const addNode = () => {
let p_form = pForm
let ha = [vForm, yForm, hForm]
let info = [....]
setCurrentNodeForm(
{
...currentNodeForm,
p: p_form,
ha: ha,
info: info,
}
)
// inserts this form to a state called `addedNodes`
let currArr = [...addedNodes]
currArr.push(currentNodeForm)
setAddedNodes(currArr)
intializeForms()
}
这是我用作Add
按钮的onclick
函数的函数。
这将一个新对象添加到一个名为addednodes
的状态,该状态是一个对象数组。
const submitMainForm = () => {
let credentials = [...]
let nodes = [...addedNodes]
setMainForm(
{
...currentMainForm,
credentials: credentials,
nodes: nodes,
}
)
let body = {
name: .... // something
objects: currentMainForm,
}
intializeForms()
let options = {
headers: header,
method: 'post',
mode: 'cors',
body: JSON.stringify(body),
}
console.log('options.body', options.body)
return new Promise((resolve, reject) => {
fetch(endpoint, options)
.then(res => res.json())
.then(resText => {
console.log('resText', resText)
})
}).catch(err => {
console.log(err)
})
}
提前谢了。
在React Hook
中执行副作用。如果它是功能性组件,那么在useEffect
钩子中添加api调用。
setmainform
是一个异步函数,因为它具有async
的特性,所以在body中没有数据。
您可以做的是,更新提交函数中的状态,并使用useEffect
钩子来监听CurrentMainForm
状态的更改并提交数据。
useEffect( () => {
fetchData();
}, [currentMainForm]);
const submitMainForm = () => {
let credentials = [...]
let nodes = [...addedNodes]
setMainForm( prevState => {
return {
...currentMainForm,
credentials: credentials,
nodes: nodes,
}
});
}
function fetchData() {
let body = {
name: '....', // something
objects: currentMainForm,
}
intializeForms()
let options = {
headers: header,
method: 'post',
mode: 'cors',
body: JSON.stringify(body),
}
console.log('options.body', options.body)
return new Promise((resolve, reject) => {
fetch(endpoint, options)
.then(res => res.json())
.then(resText => {
console.log('resText', resText)
})
}).catch(err => {
console.log(err)
})
}
我想问一下,为什么在执行事件时,我的状态没有改变。我已经搜索到需要在构造函数中绑定函数,但是状态仍然没有更新。 下面是我的代码:
问题内容: 我想问为什么在执行onclick事件时状态没有变化。我已经搜索了一段时间,我需要在构造函数中绑定onclick函数,但状态仍未更新。这是我的代码: 问题答案: 这个回调真的很混乱。只需使用async await代替:
问题内容: 我想问一下为什么在执行onclick事件时状态没有变化。我已经搜索了一段时间,我需要在构造函数中绑定onclick函数,但状态仍未更新。这是我的代码: 问题答案: 幸运的是, setState进行了回调。这是我们获取更新状态的地方。考虑这个例子。 因此,当回调触发时,this.state是更新后的状态。你可以在回调中获取突变/更新的数据。
我有一个简单的组件 问题是我需要添加什么
我正在尝试使用状态将一个表单输入值复制到另一个表单输入值,但状态没有更新 我创建了一个带有按钮的表单,其中左侧表单输入的值应复制到右侧表单输入。这是我的代码: 无论我做什么,dbSecName的状态都不会改变。我试着设置一个新的常量。我尝试使onclick函数异步并等待。如果我为我试图设置的变量的值添加,我可以正确地看到它,但是dbSecName的console.log总是显示原始值。 我真的不知
下面有一个子组件,我正在尝试更新父组件中的。我已经尝试了几个迭代,但没有运气。