在我的组件中,当我尝试对字符串(在prop中的对象中)使用substr时,出现以下错误:
Uncaught TypeError: offer.description.subtstr is not a function
在父组件中完成Axios请求时,传递道具。我检查了一下,它是一个字符串值以供说明。
这是我的完整代码:
import React, { Component } from 'react'
import {Link} from 'react-router-dom'
export class ResultBox extends Component {
render() {
var offer = this.props.offer;
var info = "| " + offer.address + " | " + offer.date;
if(offer.minimumAge > 0) {
info = info + " | Âge minimum : " + offer.minimumAge + " ans"
}
return (
<div key={offer.id} className="result-box">
<div className="result-box-img"><img src={require('../../img/user/hands.svg')} /></div>
<div>
<span className="result-box-org">{offer.organization.name}</span>
<span className="result-box-title"><Link to={"/organisme/offres/" + offer.id}>{offer.name}</Link></span>
<p className="result-box-desc">{offer.description.subtstr(0,10)}</p>
{(offer.placesAvailable > 0) ?
<span className="result-box-nPlaces">{offer.placesAvailable} places disponibles {info}</span>
:
<span className="result-box-nPlaces">{offer.placesAvailable * -1} personnes dans la file d'attente {info}</span>
}
</div>
<div className="result-box-date"></div>
</div>
)
}
}
ResultBox.defaultProps = {
offer : {description: ''}
}
export default ResultBox
```
答案 0 :(得分:4)
它是substring()
https://www.w3schools.com/jsref/jsref_substring.asp
尝试使用
offer.description.substring(0, 10)
编辑
您也可以使用substr()
。
但是您的代码中有错字。您拥有的是subtstr()
答案 1 :(得分:0)
看起来像您有错字。应该是substr而不是'subtstr'
答案 2 :(得分:0)
您需要为此解构(substr
或使用substring
作为已发布的解决方案。
喜欢
let offer = {
description:'Hey welcome to stack overflow'
}
const {description} = offer;
document.write(description.substr(0,10));