Я настраиваю приложение React. js, в котором каждый компонент представляет собой отдельную главу статьи. Я хочу прослушать событие загрузки элемента абзаца главы и отправить его дату в базу данных реального времени Google Firebase , поэтому мне нужно получить имя каждой главы, что, как я думал, было бы лучше с атрибутом. Мой код действительно работает с событием onClick
, но не с onLoad
:
// Epilogue.jsx
import React, { Component } from 'react';
import {getName} from './clicksCounters';
class Epilogue extends Component {
render () {
return <p part='epilogue' onLoad={getName}> // the attribute i am trying to get is "part".
i am the epilogue chapter!
</p>
}
}
export default Epilogue;
// clicksCounters.jsx
import * as firebase from 'firebase';
function getName(e) {
let refTitle = e.currentTarget.part; //the attribute is taken to here.
submitWords();
function submitWords(){
const submittedWords = firebase.database().ref('clicks/chapter/' + refTitle); //this is where i want it, as a subdirectory.
saveWords();
function saveWords() {
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = yyyy + '/' + mm + '/' + dd;
const newMessageRef = submittedWords.push();
newMessageRef.set({
Date: today + ' ; ' + Date()
});
}
}
}
export {getName};
Когда я использую ()
(например: onLoad={getName()}
), я получаю следующую ошибку: TypeError: не удается прочитать свойство currentTarget из undefined .
Кто-нибудь знает, как это исправить?
БОЛЬШОЕ СПАСИБО! ♥