DB
Size: a a a
DB
YO
IK
VC
AR
VC
AR
PD
VS
O
VS
DD
ES
state ={
from: null
}
componentDidMount() {
this.onDataChange(Date.now());
}
fetchService = async () => {
const { type, content } = await service(this.state);
return ... ;
}
onDataChange = (date) => {
this.setState(
{
from: moment(date).startOf("month"),
},
() => this.fetchService ()
);
}Переделываю на функциональный компонент и на сервере ошибка SyntaxError: Unexpected token " in JSON at position 0, дата просто не долетает до сервера, хотя передается в таком же формате как и в классовом примереconst [from, setFrom] = useState(null);
useEffect(() => {
onDataChange(Date.now());
}, []);
const fetchService = async () => {
const data = await service('/charts/receipts', { method: 'post', body: from });
if (data) {
setData(data.content);
}
}
const onDataChange = (date) => {
setFrom(moment(date).startOf("month"));
fetchService ();
}
EM
fetchService нужно в эффекте на изменение from?DB
fetchService вызываетя до ре-рендера, т.е. в контексте предыдущего from значения. Вроде так. Поставь там дебаггер и проверь.DB
componentDidMount выглядят излишнимиconst [from, setFrom] = useState(Date.now())useEffect(() => { ...do something when from is changed }, [from])DB
ES
EM
EM