小编Gat*_*oyu的帖子

基于异步值的 UseState 初始状态

我想要一个控制 select 的钩子,但它的初始状态可以通过 url 和 api 调用来定义。

这是我想要实现的行为:

  • 组件通过异步调用api获取文档列表(result.value仅在一段时间后才会设置)
  • 文档的 id 可以在 url 中设置,如果 match 不为“false”,则 match.params.id 会提取它
  • useState 控制选择,如果(在 api 调用之后)在 url 中定义了 id 并且在文档列表中找到了该 id,我希望将索引设置为该值

这是我尝试过的(当然它不起作用):

const match = useRouteMatch('/document/:id') //react-router
const result = useAsync(api.getDocuments, []) //react-use
const [selectIndex, setSelectIndex] = useState(match && !(result.loading || result.error) && result.value.documents.findIndex(({_id}) => _id === match.params.id))
Run Code Online (Sandbox Code Playgroud)

基本上我想要一个用于 useState 的异步初始状态

我觉得 useEffect 可能有用,但我仍然不知道如何使用它

reactjs react-hooks

11
推荐指数
2
解决办法
9415
查看次数

交叉点两个选择

我有这张桌子:

+----+-----------+-------+
| id | client_id | is_in |
+----+-----------+-------+
| 1  |     1     |   0   |
+----+-----------+-------+
| 2  |     2     |   0   |
+----+-----------+-------+
| 3  |     1     |   1   |
+----+-----------+-------+
| 4  |     2     |   1   |
+----+-----------+-------+
| 5  |     3     |   1   |
+----+-----------+-------+
| 6  |     3     |   1   |
+----+-----------+-------+
| 7  |     1     |   0   |
+----+-----------+-------+
| 8  |     4     |   0   |
+----+-----------+-------+
| 9  |     4     |   0 …
Run Code Online (Sandbox Code Playgroud)

mysql select intersect

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

React useEffect 清理函数意外调用

我正在创建一个自定义钩子以在表单提交时获取 api,我在 useEffect 钩子内进行 api 调用,并且我有一个减速器来处理钩子的状态。其中一个状态首先trigger设置为 false 以控制 useEffect 是否执行任何操作,关键是钩子返回一个函数,trigger该函数只在您调用此函数时触发 useEffect 的值。问题是在 api 调用期间调用了 useEffect 的清理函数,即使该组件显然仍处于挂载状态。

清理功能似乎被触发,因为我trigger根据其先前的值设置trigger了 的值,当我设置为固定值时,不会调用清理功能,但我失去了功能

const fetchReducer = (state, action) => {
    switch (action.type) {
        case 'FETCH_TRIGGER':
            return {
                ...state,
                trigger: !state.trigger
            }
        case 'FETCH_INIT':
            return {
                ...state,
                isLoading: true,
                isError: false
            };
        case 'FETCH_SUCCESS':
            return {
                ...state,
                isLoading: false,
                isError: false,
                datas: action.payload,
            };
        case 'FETCH_FAILURE':
            return {
                ...state,
                isLoading: false,
                isError: true,
            };
        default:
            throw new Error(); …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

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

如何在redux工具包中组合商店

我有多个具有相同整体结构的项目,它们使用 redux 存储来处理几乎所有状态:

const store = configureStore({
  reducer: {
    users: userSlice.reducer,
    travels: travelSlice.reducer
  }
})

//example reducer
const userSlice = createSlice({
  name: 'users',
  initialState,
  reducers: {
    addUser: (state, action) => {
      state.users.push(action.payload)
    },
    ....
  }
}) 
Run Code Online (Sandbox Code Playgroud)

我制作了一个供项目使用的 utils 库,它有自己的商店(与上面的代码类似),但我们希望每个应用程序只有 1 个商店

有没有办法将 2 家商店合并为 1 家?

reactjs redux-toolkit

5
推荐指数
0
解决办法
701
查看次数

维基文本中的可滚动表格

在我的公司,我们使用内部 wiki,我需要添加一个表格,但表格非常大,超过 100 列,因此当您想查看所有数据时,您可以水平滚动,但滚动的是所有页面。wikitext 中有没有办法让表格只能滚动?

wikitext

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