# #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"}