обновление базы данных firebase в реальном времени внутри функции не может видеть параметр React Native

# #react-native #firebase-realtime-database #parameter-passing

Вопрос:

поэтому я пытаюсь передать параметр из функции onPress в database.ref().update(параметр здесь), но функция обновления не может увидеть параметр onPress. вот мой код. Можете ли вы помочь мне понять, что я делаю не так?

onSubmit(атрибут){ this.setState({ применить:false, }) const ref = база данных().ref(«Пользователи/Погоня/Плющ»)

 ref.update({Attribute : this.state.inputText}).then(()=gt; {  console.log('updated!!!');  }).catch((error) =gt; {  console.log(error);  })  }  

вот встроенная функция onPress

{(это.состояние.применяется) ? lt;Стиль кнопки={стили.кнопка} onPress={() =gt; this.onSubmit(‘Класс’)} заголовок=»Применить»/lt;Стиль кнопки={стили.кнопка} onPress={() =gt;gt;

Комментарии:

1. Вы не используете параметр для onSubmit, Attribute

2. я чувствую, что я его в ref.update(Атрибут: this.state.ввод текста)… который находится внутри функции onSubmit. когда я набрал код, он не поместил все это в серое поле. извините, это мой первый вопрос здесь, я не уверен, как отформатировать мои вопросы.

3. «Атрибут» — это имя ключа создаваемого вами объекта. Вы не используете параметр в этой функции, называемый Атрибутом.

4. Как я могу сделать ключ равным атрибуту параметра, потому что при вызове функции я хочу каждый раз передавать другой ключ. И спасибо за помощь

5. Я пробовал делать .ref(…Atrribute), который, кажется, работает, но синтаксис путается, когда я это делаю

Ответ №1:

Вы, кажется, смущены тем, как объекты работают в JS.

 const fn (param) =gt; {  const obj = {param: "something"};  const obj2 = {[param]: "beta"};  const obj3 = {param};   console.log(obj, obj2, obj3); };  fn("carlos");  // Outputs: // {param: "something"} // {carlos: "beta"} // {param: "carlos"}