如何只获取一个数据并将其写入 Header ?
我正在使用 firebase 和react-redux。
firebase结构我尝试写“组织”:inovanka:
操作文件代码:
import firebase from 'firebase';
import { Actions } from 'react-native-router-flux';
import { ORGANIZATION_NAME_DATA_SUCCESS } from './types';
export const organizationName = () => {
const { currentUser } = firebase.auth();
return (dispatch) => {
firebase.database().ref(`/organizations/${currentUser.uid}`)
.on('value', snapshot => {
dispatch({ type: ORGANIZATION_NAME_DATA_SUCCESS, payload: snapshot.val() });
});
};
}
reducer 文件:
import { ORGANIZATION_NAME_DATA_SUCCESS } from '../actions/types';
const INITIAL_STATE = {
};
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case ORGANIZATION_NAME_DATA_SUCCESS:
console.log(action); // data retrieved as array
return action.payload
default:
return state;
}
};
组件:(我想写到这里)
class HomePage extends Component {
componentWillMount() {
}
render() {
return (
<Container>
<Header>
<Text> i would like to write it here </Text>
</Header>
<Content>
</Content>
</Container>
);
}
}
const mapStateToProps = ({ homepageResponse }) => {
const organizationArray = _.map(homepageResponse, (val, uid) => {
return { ...val, uid }; //
});
return { organizationArray };
};
export default connect(mapStateToProps, { organizationName })(HomePage);
最佳答案
更改此:
firebase.database().ref(`/organizations/${currentUser.uid}`)
.on('value', snapshot => {
对此:
firebase.database().ref(`/organizations/${currentUser.uid}`)
.once('value', snapshot => {
使用once()
只会读取一次数据,因此只获取一个数据
关于javascript - React Native Firebase 仅获取一项数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49257221/