Я читаю книгу о React, но она устарела и взята из React16. Книга «Прогрессивные веб-приложения». Мне удалось обновить большинство вещей до React19, но я не могу передавать методы по ссылке, как это сделано в книге. Судя по тому, что я видел, React удалил «refs» и использует useRef или createRef, но я не могу сделать это в соответствии с книгой.
Это ссылка по refs через реакцию16
import React from 'react';
import './App.css';
import Header from './components/Header/Header.tsx';
import NovoUsuario from './components/NovoUsuário/NovoUsuario.tsx';
import Toast from './components/Toast/Toast.tsx'
function App() {
return (
this.refs.toast.erro(msg)} />
);
}
export default App;
< /code>
Компонент Erro () поступает из класса Novousuario, который находится внутри функции Validate (e). < /p>
validar(e) {
e.preventDefault()
let usuario = this.state.usuario
let validacao = this.state.validacao
validacao.nomeInvalido = ! usuario.validarNome()
validacao.generoInvalido = ! usuario.validarGenero()
let mensagem = ''
let primeiraVisaoCompleta = false
if(validacao.nomeInvalido && validacao.generoInvalido) {
mensagem = 'Os campos nome e gênero estão inválidos!'
} else if (validacao.nomeInvalido) {
mensagem = 'Seu nome está inválido!'
} else if (validacao.generoInvalido) {
mensagem = 'Selecione seu gênero!'
} else {
primeiraVisaoCompleta = true
}
if (!primeiraVisaoCompleta) {
this.props.erro(mensagem)
}
this.setState({
validacao: validacao,
primeiraVisaoCompleta: primeiraVisaoCompleta
})
< /code>
} < /p>
Я попытался использовать ref useref usecontext, и это не сработало, какой бы простой способ получить доступ к функции с помощью ссылки в другом компонент?
Подробнее здесь: https://stackoverflow.com/questions/793 ... s-by-refer