0
我想在某个阶段派遣一个行动到减速机,但它似乎并没有工作。 showGeo()函数在组件挂载时启动。我在控制台中看到的是一个空数组,这是默认状态。我试图用dispatch包装返回块中的代码,但这也不起作用。我是初学者,所以任何帮助将不胜感激。我试图派遣一个行动,但它似乎并没有注册
export const sendAction = (user) => {
return (dispatch) => {
dispatch({ type: GEO_SUCCESS, payload: user });
};
};
export const showGeo =() => {
const firebaseRef = firebase.database().ref('/geofire');
const geoFire = new geofire(firebaseRef);
let user;
const geoQuery = geoFire.query({
center: [37.78, -122.4],
radius: 10 //kilometers
});
geoQuery.on("key_entered", function(key, location, distance) {
console.log("Bicycle shop " + key + " found at " + location + " (" + distance + " km away)");
firebase.database().ref('/users/' + key).once('value').then(function(snapshot) {
console.log(snapshot.val());
user = snapshot.val();
sendAction(user);
});
});
};
这里是减速文件:
import {
GEO_SUCCESS
} from '../actions/types';
export default (state = [], action) => {
switch (action.type) {
case GEO_SUCCESS:
return action.payload;
default:
return state;
}
};
嗨,我忘了提及该用户是一个全局变量可由sendAction访问。无论如何,我会尝试你的建议。谢谢 – moe
好奇....是否有一个原因,它是一个全局变量?您正在使用redux并分派一个操作以将用户包含在其中。 –
没有真正的理由,我改变了代码,按照你的建议提供它作为参数,并且动作仍然没有更新用户的状态。 – moe