我的SolidJS组件从服务器获取一个JSON对象,我了解如何使用返回的JSX来渲染它。
但是,在返回JSX之前,我该如何处理提取的数据呢?
const fetchData = async url => {
let results = await fetch(this.path + url)
return await results.json()
}
function User() {
const handleSubmit = e => {
e.preventDefault()
signIn({email: "Foo", password: "Bar"})
}
const signIn = obj => {
if (obj.email && obj.password) {
const [user] = createResource(() => fetchData("json/sign-in/" + obj.email + "/" + MD5(obj.password) ))
console.log(user())
/* undefined */
console.log(user().name)
/* Uncaught TypeError: Cannot read properties of undefined (reading 'name') */
}
}
return (
<>
<button onClick={ handleSubmit }>Sign In</button>
</>
)
}
export default User
在上面的示例中,控制台日志在尝试访问属性时返回未定义或错误。那么,一旦加载了这些数据,我该如何访问它呢?有没有比使用setTimeout更优雅的方法来处理这个问题?