setState - это асинхронный метод, если ты сделал setState({ targetValue: value }), то это не значит , что в следующей строке у тебя будет актульное значение this.state.targetValue:
handleChange(e) {
e.preventDefault();
const value = e.target.value;
console.log(e.target.value);
this.setState(() => {
return { targetValue: value };
});
if (value.length > 0) {
this.setState((prevState) => {
const newUsers = prevState.users.filter((el) => {
return el.name.match(value);
});
console.log(newUsers);
return { users: newUsers };
});
}
if (value === "") {
axios
.get(`https://social-network.samuraijs.com/api/1.0/users?count=20`)
.then((response) => {
console.log(response);
this.setState(() => {
return { users: response.data.items };
});
}, () => console.log(this.state.users)); // тут будут новые users
}
console.log(this.state.users); // тут не будет новых users
}