Javascript 在React-java脚本中传递参数
我正在尝试从钩子上的React应用程序中的函数获取参数。这只是一个例子。有人知道为什么(不管是fireFavs()还是fireFavs2())它总是比实际状态落后一步,我如何解决这个问题?我试图编写单独的模块,甚至是单独的钩子,但我做不好 `Javascript 在React-java脚本中传递参数,javascript,reactjs,redux,parameter-passing,Javascript,Reactjs,Redux,Parameter Passing,我正在尝试从钩子上的React应用程序中的函数获取参数。这只是一个例子。有人知道为什么(不管是fireFavs()还是fireFavs2())它总是比实际状态落后一步,我如何解决这个问题?我试图编写单独的模块,甚至是单独的钩子,但我做不好 ` import React,{useState,useffect}来自“React”; 从“react-redux”导入{useSelector,useDispatch}; 常量CharacterDetails=({favs})=>{ 常量Favorites
import React,{useState,useffect}来自“React”;
从“react-redux”导入{useSelector,useDispatch};
常量CharacterDetails=({favs})=>{
常量Favorites=useSelector(state=>state.isFavoriteRedurec)
让favIDs=favorites.favIDs
函数fireFavs(){
控制台日志(favs);
}
函数fireFavs2(){
控制台日志(favIDs);
}
返回(
{fireFavs2();fireFavs()}
>
)
导出默认字符详细信息;
`从您的代码中不清楚您试图实现什么,但您描述的内容听起来可能是预期的行为,因为
setState
是不同步的()。如果您想在状态发生变化时查看这些变化,请在函数中设置您的状态,并尝试在useffect
中登录(我看到您已经导入了它,但没有使用它)
这里也有同样的问题。我比accual状态落后1步。让[inBook,setInBook]=useState(true);useffect(()=>{//setAddFav(favIDs)console.log(favIDs);},[inBook])onClick={()=>{setisfavorite(isfavorite+1);fireFavs();setInBook(!inBook)}}在这里,您可以在下面的控制台上检查它是否同时进行日志记录
import React, { useState, useEffect } from "react";
import {useSelector, useDispatch } from "react-redux";
const CharacterDetails = ({ favs}) => {
const favourites = useSelector(state => state.isFavouriteRedurec)
let favIDs = favourites.favIDs
function fireFavs() {
console.log(favs);
}
function fireFavs2() {
console.log(favIDs );
}
return(
<>
<IconButton
aria`enter code here`-label="add to favorites"
className={classes.actionPanel}
onClick={() => {fireFavs2(); fireFavs() }}
>
</IconButton>
</>
)
export default CharacterDetails;
useEffect(() => {
console.log(yourstate)
}, [yourstate])