我具有此注销功能:
data = [['a', 'b'],['d', 'e'], ['e'], ['c'], ['a', 'b'], ['c']]
results = {}
for d in data:
t = tuple(d)
if t not in results:
results[t] = data.count(d)
print(results)
# OUTPUT
# {('a', 'b'): 2, ('d', 'e'): 1, ('e',): 1, ('c',): 2}
logOut = () => {
axios
.delete(`${apiUrl}/logout`)
.then(response => {
if (response.status === 204) {
localStorage.removeItem('key', response.headers.authorization)
localStorage.removeItem('id', response.data.id)
// return <Redirect to="/login" />
this.props.history.push(`/login`)
}
})
.catch(error => {
console.log(error)
})
}
在其他场合也可以使用。但是在这里它说无法读取未定义的this.props.history.push('/something')
。我尝试了push
,该方法也不起作用。
我在做什么错了?
答案 0 :(得分:5)
可能由于以下原因之一:
1-使用history.push时,您需要将组件传递给withRouter:
import { withRouter } from 'react-router-dom
// ... codes of component in here ...
export default withRouter(componentName) // at the end of component
2- 此是指axios,您需要使用其他名称在axios上定义此名称,并在axios中使用它,例如:
var that = this;
// then use that in axios