createTheme() - Type Error: Index signature for type 'string' is missing
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 40/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- react, typescript
- Lĩnh vực
- frontend
Hướng nghiên cứu
Bắt đầu với tài liệu Theming Components và bản tái hiện được cung cấp của TOKENS, DEFAULT_THEME và css.createTheme trong ví dụ Expo được liên kết. Kiểm tra các định nghĩa kiểu của createTheme và kiểm tra kiểu của ví dụ; được xem là hoàn tất khi mã được ghi trong tài liệu biên dịch mà không cần ép kiểu sang Record<string, unknown>.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the issue
Hello, I tried the example from Theming Components docs, but I faced a minor TypeScript issue. Not sure if I'm doing something wrong.
❌ Type Error:
✅ A pontential workaround would be to cast Record<string, unknown:
Expected behavior
I'd expect no type errors when following instructions from the docs.
Steps to reproduce
- Create expo project
- Follow setup instructions
- Copy this code:
import { css } from 'react-strict-dom';
export const DARK_MODE = '@media (prefers-color-scheme: dark)';
const TOKENS = {
primaryText: {
default: 'black',
[DARK_MODE]: 'white',
},
secondaryText: {
default: '#333',
[DARK_MODE]: '#ccc',
},
accent: {
default: 'blue',
[DARK_MODE]: 'lightblue',
},
background: {
default: 'white',
[DARK_MODE]: 'black',
},
lineColor: {
default: 'gray',
[DARK_MODE]: 'lightgray',
},
};
export const DEFAULT_THEME = css.defineVars(TOKENS);
const BRAND_THEME = {
primaryText: { default: 'purple', [DARK_MODE]: 'lightpurple' },
secondaryText: { default: 'pink', [DARK_MODE]: 'hotpink' },
accent: 'red',
background: { default: '#555', [DARK_MODE]: 'black' },
lineColor: 'red',
};
export const branding = css.createTheme(DEFAULT_THEME, BRAND_THEME);
- Use it in root
_layout.tsxfromexpo-router:
import { Slot } from 'expo-router';
import { html } from 'react-strict-dom';
import { branding } from '@/src/theme/constants';
import '@/src/theme/stylex.css';
export default function Layout() {
return (
<html.div style={[branding]}>
<Slot />
</html.div>
);
}
Test case
https://github.com/LunatiqueCoder/expo-strict-dom-example
Additional comments
No response
- Ngôn ngữ chính
- JavaScript
- Star
- 3.6k
- Fork
- 206
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của react/react-strict-dom
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
react/react-strict-dom#467 · 1 bình luận ·
-
Missing disabled propĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
react/react-strict-dom#465 · 2 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
react/react-strict-dom#520 ·
-
css.defineVars() with kebab-case keys warns unrecognized custom property and fails to resolveĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
react/react-strict-dom#505 · 2 reaction ·
-
bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 62/100
react/react-strict-dom#491 · 4 bình luận ·
Tất cả issue của react/react-strict-dom
Issue tương tự
-
refactor
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 5 ngày
-
translation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
ciderapp/translations#87 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày
-
component: split-view platform: windows
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
zen-browser/desktop#15616 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày