Как мне получить реквизит в этом классе ES6? - PullRequest
1 голос
/ 16 июня 2020

Я пробовал использовать конструктор (реквизиты), но все еще не могу найти переменную: props Горячо, получаю ли я реквизиты в этом:

    export default class DetailScreen extends React.Component {
  state = {
    value: '399',
    checked: 'Pan Crust',
  };

  render() {
    const productId = props.navigation.getParam('productId');
    constselectedProduct = useSelector((state) =>
      this.state.products.vegProducts.find((prod) => prod.id === productId),
    );

    const {checked} = this.state;

1 Ответ

1 голос
/ 16 июня 2020

props доступны из this в компонентах класса.

Итак, первая строка в функции рендеринга должна быть

const productId = this.props.navigation.getParam('productId');

Обновить Для реагирующей навигации 5.x

У вас должна быть возможность получить доступ к таким параметрам маршрута

const productId = this.props.route.params.productId;

В функциональных компонентах следует использовать хуки. Вам следует реорганизовать свой код, чтобы он выглядел так:


export const DetailScreen = ({route)} => {
const [value, setValue] = useState('399');
const [checked, setChecked] = useState('Pan Crust');
const productId = route.params.productId;

return (
   // return view here
 )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...