Здравствуйте! Вопрос касается связи между компонентами React,а именно: передача данных из одного компонента в другой.
Пусть есть страница
Код Layout.jsx:
class Layout extends Component {
renderItems() {
var items = [
{name: 'Ivan', _id: '1'},
{name: 'Petya', _id: '2'}
];
return items.map( (each) => {
return (
render() {
return (
Код Item.jsx:
class Item extends Component {
render() {
return (
Пусть теперь я хочу реализовать по щелчку на каждый
Новый код Item.jsx:
class Item extends Component {
printId() {
console.log(this.props.each._id);
}
render() {
return (
Но как быть, если нужно реализовать кнопку "Показать _id" снаружи, то есть в
Допустим, внутри каждого
Но как передать _id отмеченных Itemов в
Заранее благодарен за ответы.
Ответ
Ответ нашелся сразу в документации, спасибо @AlexeyTen за наводку. Пришлось помучиться, однако решение готов и оно ниже.
При вызове функции из компонента someFunction.bind(this) мы можем передавать любое количество аргументов: someFunction.bind(this, arg1, arg2, ...). В этом и заключается ответ.
Для примера выше: добавим функцию printId в компонент
class Layout extends Component {
printId(id)
console.log(id);
renderItems() {
var items = [
{name: 'Ivan', _id: '1'},
{name: 'Petya', _id: '2'}
];
return items.map( (each) => {
const eachId = each._id;
return (
render() {
return (
Однако, код выше не будет работать. Причина в том, что
class Item extends Component {
render() {
return (
Теперь все работает как надо.
Комментариев нет:
Отправить комментарий