使用react-apollo useQuery和onChange时无法正确呈现

时间:2019-09-21 16:39:17

标签: javascript reactjs react-apollo

我正在做一个简单的搜索功能,如果找到匹配的用户名,将从graphql端点返回一个用户对象。

在我当前的代码中,渲染似乎无法正常工作,即它为某些用户名渲染,但对于其他用户名则无法渲染,即使我看到用户已返回并正确设置了状态。

--release 13

如果我将设置状态的逻辑(即import React, { useState, useEffect } from 'react' import { useLazyQuery } from '@apollo/react-hooks' import { Link } from 'react-router-dom' import FIND_USER_BY_LOGIN from '../queries/FIND_USER_BY_LOGIN' const Search = () => { const [term] = useState("") const [user, setUser] = useState(null); const [getUser, { data }] = useLazyQuery(FIND_USER_BY_LOGIN); useEffect(() => { setUser(data && data.user ? data.user : null) }, [user, data]) return ( <div> { !! user && ( <Link to={`user/${user.login}`}>{user.name}</Link> )} <input type="text" name="login" value={term} onChange={ e => { const login = e.target.value getUser({ variables: { login }}) }}/> </div> ) } export default Search 移到setUser之外,则会出现useEffect错误。

0 个答案:

没有答案