Ich rufe Action Creator mit componentWillMount-Methode,, dann wird es zweimal aufgerufen. schau unter Screenshot des Ergebnisses.dispacting actions creator wird zweimal mit componentWillMount aufgerufen
das ist meine Aktion Schöpfer:
export function fetchAdmin(){
return (dispatch)=>{
axios.get(`${Config.API_URL}/admin`,{
headers: { authorization: localStorage.getItem('token')}
})
.then(response => {
return dispatch({
type: FETCH_DATA,
payload: response.data
});
}
)
.catch(response => {
console.log(response);
});
}
}
und das ist mein Minderer:
import { FETCH_DATA } from '../actions/types';
export function admin(state= {}, action){
switch(action.type){
case FETCH_DATA:
return {...state, lists: action.payload };
default:
return { state, lists: 'YEY!'}
}
}
und dies ist mein Behälter und die Art, wie ich mein nennen Aktionsersteller mit ComponentWillMount.
aus dem Screenshot nehme ich an, dass render() zweimal aufgerufen wird. Der erste Aufruf geht an den Ersteller der Standardaktion, sodass das Ergebnis "YEY!" und das zweite ist das gültige.
kann mir jemand erklären, warum componentWillMount so funktioniert und tatsächlich in der ersten render ich will nur mein Array nicht "YEY!" Wie löst man dieses Problem? Vielen Dank.
Es wird nicht empfohlen, die Datenladung in 'componentWillMount' auszulösen. Sie sollten das in 'componentDidMount' tun –
owh wirklich? warum?? @ Just-boris –
Dieser Twitter-Thread enthält einige Erklärung https://twitter.com/dan_abramov/status/790581793397305345 –