Neu zu Reagieren und zu versuchen, herauszufinden, wie ich {user}
in meinem Code unten hinzufügen/definieren kann. Ich bekomme immer einen Fehler auf user not defined
, wenn ich versuche, es auszuführen.Definieren eines Benutzers mit Requisiten oder Dekonstruktion in React
Mein-Code zur Zeit:
import React from 'react';
import {
Media,
Dropdown,
DropdownToggle,
DropdownMenu,
DropdownItem,
} from 'reactstrap';
import PropTypes from 'prop-types';
class UserPreview extends React.Component {
toggle = ({user}) => this.setState({DropdownOpen: !this.state.DropdownOpen});
render() {
return (
<div>
<tr className="user">
<td>
<Media>
<img
alt={`${user.name} avatar`}
className="avatar d-flex mr-3"
src={user.url} />
<Media body>{user.name}</Media>
</Media>
</td>
<td>
<Dropdown isOpen={this.state.DropdownOpen} toggle={this.toggle(this)}>
<DropdownToggle caret>
Admin
</DropdownToggle>
<DropdownMenu>
<DropdownItem>Read</DropdownItem>
<DropdownItem>Write</DropdownItem>
</DropdownMenu>
</Dropdown>
</td>
<td><Button color="warning">Delete</Button></td>
</tr>
<tr>
</div>
)
}
}
UserPreview.propTypes = {
user: PropTypes.shape({
name: PropTypes.string,
// TODO: add an url proptype.
url: PropTypes.string,
}).isRequired,
};
export default UserPreview;
Versuchen Sie, auf 'this.props.user' innerhalb der' toggle' Funktion zuzugreifen? Ich weiß nicht, woher der Benutzer kommen soll. –
Benutzer kam von einer anderen Komponente, die von den Proptypen angerufen wurde. – Mark
Bitte bearbeiten Sie Ihre Frage nicht so, dass vorhandene Antworten ungültig werden. Erstellen Sie stattdessen eine neue Frage. – Matt