小编And*_*nas的帖子

挂钩更改状态不会更新上下文提供程序的值?

我有 2 个组件和一个上下文提供程序,当我在父级别调用我的钩子时,我可以更改状态并让这 2 个组件通过上下文获取值

contex api 使用的工作演示,但我在父级别调用更改状态,这不是我想要的 https://stackblitz.com/edit/react-51e2ky?file=index.js

我想使用钩子更改内部组件的状态,但是当我单击navbar login.

https://stackblitz.com/edit/react-rgenmi?file=Navbar.js

家长:

const App = () => {
  const {user} = loginHook()
    return (
      <UserContext.Provider value={user}>
        <Navbar />
        <Content />
      </UserContext.Provider>
    );

}
Run Code Online (Sandbox Code Playgroud)

导航栏.js

const Navbar = () => {
  const user = React.useContext(userContex)
  const {setUser} = loginHook()

  return <div>{user ? <span>{user.name}</span> : <button onClick={() => {
    setUser({
      name: 'jane'
    })
  }}>navbar Login</button>}</div>
}
Run Code Online (Sandbox Code Playgroud)

定制挂钩

const loginHook = () => {
  const [user, setUser] = React.useState(null)

  return …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs context-api

5
推荐指数
1
解决办法
1565
查看次数

Typescript 对象可能在反应中使用 ref 聚焦“空”

打字稿仍然给我错误

对象可能是 'null'.ts(2531)

即使我这样做

myRef && myRef.current && myRef.current.focus();
Run Code Online (Sandbox Code Playgroud)

如果我使用

myRef?.current?.focus();
Run Code Online (Sandbox Code Playgroud)

我有

Property 'focus' does not exist on type 'never'.ts(2339)
Run Code Online (Sandbox Code Playgroud)

javascript typescript ecmascript-6 reactjs

4
推荐指数
1
解决办法
842
查看次数

使用问号中断对数组进行空值检查

我有这个对象数组

const a = {a:[{b:[{prop: 10}]}]}

访问 10 的值我做

a.a[0].b[0].prop // 10

我使用这个后备,确保事情不会破坏,但它不起作用?

a?.a[0]?.b[0]?.prop

,我可以使用像 lodash 的 get 或 check 这样的旧方法,但是如何使用问号语法?

javascript ecmascript-6

2
推荐指数
1
解决办法
2970
查看次数

HTMLInputElement 类型上不存在属性“name”?

const handleOnChange = (e: React.SyntheticEvent<HTMLInputElement>): void => {
    console.log(e.name);
  }

<input name="aa" onChange={handleOnChange} />
Run Code Online (Sandbox Code Playgroud)

为什么HTMLInputElementreact中没有name属性?

typescript reactjs

1
推荐指数
1
解决办法
644
查看次数