从数据库更新值。 React-Native

时间:2019-06-27 15:11:12

标签: javascript react-native

我需要从数据库(couchdb / pouchdb)更新一些值。

我有这样的结构: 认证页面     StartingConsumer(在其中检查用户是否已登录) 如果用户已登录,则将其重定向到HomepageUtente。

在HomepageUser中,我具有FirstName和LastName变量,并且还具有文本“ Modifica Profilo”来更改pouchdb中的某些值。

现在的问题是,如果我通过“ Modifica Profilo”更改值,则HomepageUser中的值(“姓”和“姓”不变)。

我已经注释了我以前使用的代码。

使用新代码时,我遇到的问题是什么都不会更改,因此“ FirstName”和“ LastName”值不会更改。

您认为错误在哪里?谢谢。

StartingConsumer.js

class StartingConsumer extends Component {
  constructor(props) {
    super(props);
    this.state = {
      loading: true
    };
  }

  componentWillMount() {
    Utente.getUtenteLoggato()
      .then(dataUtenteLoggato => {
        if (dataUtenteLoggato !== null) {
          global.utente = new Utente(JSON.parse(dataUtenteLoggato));
          //Actions.homepageutente()({ type: "reset" });
          Actions.homepageutente({ utente: global.utente });

        } else {
          Actions.loginconsumer();
        }
      })
      .catch(err => {
        console.log(err);
      })
      .finally(() => {
        this.setState({ loading: false });
      });
  }

HomePageUtente

class HomepageUtente extends Component {
    constructor(props) {
        super(props);
    }


    render() {
        const utentelogged = this.props.utente;
        console.log("Utente Logged" + utentelogged)
        //const FirstName = global.utente.data.Person.FirstName;
        const FirstName = utentelogged.data.Person.FirstName;
        //const LastName = global.utente.data.Person.LastName;
        const LastName = utentelogged.data.Person.LastName;
        //const Username = global.utente.data.Person.FiscalCode;
        const Username = utentelogged.data.Person.FiscalCode;

        //const Roles = global.utente.data.Person.Roles
        const Roles = utentelogged.data.Roles

        return (

            <View style={style.container}>
                <View style={style.page}>
                    <Icon name="user-circle" color="#64c7c0" size={70} onPress={() => Actions.visualizzaprofilo({ cf: Username } )} />
                    <Text
                        style={{ paddingBottom: 15, textAlign: 'center', fontSize: 15, color: '#64c7c0', fontWeight: 'bold' }}
                        onPress={() => Actions.visualizzaprofilo({ cf: Username } )} >Visualizza il Profilo
                    </Text>

                    <Text
                        style={{ textAlign: 'center', fontSize: 20, }}>{"Benvenuto"}
                    </Text>
                    <Text
                        style={{ textAlign: 'center', fontSize: 20, color: '#64c7c0', fontWeight: 'bold' }}>
                        {FirstName} {LastName}
                    </Text>
    <Text
                        style={{ color: '#64c7c0', paddingTop: 20 }}
                        onPress={() => Actions.modificaprofilo({ cf: Username })} >MODIFICA PROFILO</Text>}

ModificaProfilo.js

export default class ModificaProfilo extends Component {
  constructor(props) {
    super(props);
    this.state = {
    /*  firstName: "",
      lastName: "",
      dateOfBirth: "",
      address: "",
      city: "",
      country: "",
      email: "",
      height: "",
      weight: "",
      shoesModel: ""*/
    };
  }

  findUtente(cf) {
    let params = {};
    console.log(cf)
    params = {
      "Person.FiscalCode": cf
    };

    global.utente.db
      .localdb()
      .find({
        selector: params
      })
      .then(response => {
        let utente = response.docs[0];
          utente.Person.FirstName = this.state.FirstName;
          utente.Person.LastName = this.state.LastName;
          utente.Person.City = this.state.City;
          utente.Person.Address = this.state.Address;

console.log("utente" + utente)
        return global.utente.db.localdb().put(utente);

0 个答案:

没有答案