【发布时间】:2018-07-02 10:55:54
【问题描述】:
我正在开发一个 react 应用程序并使用 reactstrap。
我正在使用 reactstrap 的 Tooltip 组件,它需要一个目标属性,即目标元素 id 的值。这个 id 是动态生成的,似乎 reactstrap 工具提示不喜欢它。
组件看起来像:
MovieCard.jsx
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Col, Card, CardImg, CardBody, CardTitle, CardSubtitle, CardText, Button, Tooltip } from 'reactstrap';
import { LimitedTextTitle } from '../custom-styled/CustomStyledComponents';
class MovieCard extends Component {
constructor (props) {
super(props);
this.state = {
open: false
};
this.toggle = this.toggle.bind(this);
}
toggle () {
this.setState({
open: !this.state.open
})
}
render () {
const { imdbID, Title, Year, Rated, Plot, Country, Poster } = this.props.movie;
return (
<Col md="4">
<Card>
<CardImg
top
width="100%"
src={Poster}
alt="blah"
/>
</Card>
<CardBody>
<CardTitle>
<LimitedTextTitle id={imdbID}>
{`${Title} - (${Year})`}
</LimitedTextTitle>
<Tooltip placement='top' target={imdbID} isOpen={this.state.open} toggle={this.toggle}>
{Title}
</Tooltip>
</CardTitle>
<CardSubtitle>{`Rated: ${Rated} Country: ${Country}`}</CardSubtitle>
<CardText>{Plot}</CardText>
<Button>Read More</Button>
</CardBody>
</Col>
);
}
}
MovieCard.propTypes = {
movie: PropTypes.object.isRequired // eslint-disable-line
};
export default MovieCard;
有什么建议吗?
反应版本 16.2.0
reactstrap 5.0.0-alpha.4
【问题讨论】:
-
看起来不错。您在控制台中有任何错误/警告吗?还是工具提示仅出现在某些项目上?还是 imdb id 为空/空?
-
imdbID 不为空,控制台中的错误提示,目标未定义,但如果我删除工具提示并运行上面的代码,它会生成填充的 id 属性。
-
哇.. 你能给我看看
LimitedTextTitle的渲染吗? -
github.com/priyankthakkar/open-movie-web.git 这里是源代码。参考分支“登陆页面”
-
您尚未在任何地方呈现您的 id。您已将它作为道具传递给
styled-component,但它没有呈现在页面上。将其包装在 div/span 中并将id传递给它。
标签: reactjs bootstrap-4 reactstrap