Reactjs useState仅在第一次更改值
我的状态只改变了一次,所有的时间我都有1。我怎样才能修好它Reactjs useState仅在第一次更改值,reactjs,react-hooks,use-state,Reactjs,React Hooks,Use State,我的状态只改变了一次,所有的时间我都有1。我怎样才能修好它 const My = () => { const [state,setState] = useState({ count : 0 }) useEffect(() => { console.log(state); },[state]); return ( <div> <h1>{sta
const My = () => {
const [state,setState] = useState({
count : 0
})
useEffect(() => {
console.log(state);
},[state]);
return (
<div>
<h1>{state.count}</h1>
<button onClick={()=> setState(prevState => ({
...prevState,
count: +1
}))}>Click</button>
</div>
);
};
const My=()=>{
常量[状态,设置状态]=使用状态({
计数:0
})
useffect(()=>{
console.log(状态);
},[州];
返回(
{state.count}
设置状态(prevState=>({
…国家,
计数:+1
}))}>点击
);
};
这是问题()=>setState(prevState=>({…prevState,count:+1}))
可以通过以下方式解决:
onClick={() =>
setState(prevState => ({
...prevState,
count: prevState.count+1
}))
}
代码中存在语法错误:计数:+1
因此,快速解决方法是:
const My = () => {
const [state,setState] = useState({
count : 0
})
useEffect(() => {
console.log(state);
}, [state]);
return (
<div>
<h1>{state.count}</h1>
<button onClick={()=> setState(prevState => ({
...prevState,
count: prevState.count + 1
}))}>Click</button>
</div>
);
};
const My=()=>{
常量[状态,设置状态]=使用状态({
计数:0
})
useffect(()=>{
console.log(状态);
},[州];
返回(
{state.count}
设置状态(prevState=>({
…国家,
计数:prevState.count+1
}))}>点击
);
};
但是,您的代码可以简化很多。这将输出完全相同的内容:
const My = () => {
const [count, setCount] = useState(0);
console.log(state);
return (
<div>
<h1>{state.count}</h1>
<button onClick={()=> setCount(count + 1)}>Click</button>
</div>
);
};
const My=()=>{
const[count,setCount]=useState(0);
console.log(状态);
返回(
{state.count}
设置计数(计数+1)}>单击
);
};