Bagaimana seseorang menggunakan makeStyles
API di dalam komponen kelas? Dokumentasi hanya menunjukkan contoh untuk komponen fungsi.
Ketika saya mencoba menggunakan ini dalam metode komponen kelas render
, saya mendapatkan kesalahan berikut:
Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.
Anda tidak dapat menggunakan kait di dalam komponen kelas. Anda membutuhkan komponen functionnal atau menggunakan urutan yang lebih tinggi ( withStyles
).
Saya tutup, jika kami melihat laporan serupa, saya pikir kami harus mendokumentasikannya.
@oliviertassinari : Tetapi jika aplikasi dideklarasikan sebagai kelas bagaimana cara melakukannya?
Karena dalam aplikasi saya memiliki status dan fungsi lainnya.
@ Angelk90 Anda harus menggunakan API komponen tingkat tinggi: https://github.com/mui-org/material-ui/issues/15820#issuecomment -495480040 ( withStyles
).
Menurut dokumentasi Anda, contoh penggunaan withStyles
api masih merupakan komponen fungsi.
https://material-ui.com/styles/basics/
Itulah mengapa saya menolak jawaban Anda.
@oliviantri
Bagaimana saya bisa menggunakan makeStyles dengan HOC?
Sesuai kasus penggunaan saya, saya memerlukan objek tema material dalam gaya.
Seperti yang disarankan oleh @ ghosh-jaideep,
bagaimana memiliki kemungkinan untuk menggunakan utilitas tema seperti:
[theme.breakpoints.up("md")]: {
paddingLeft: theme.spacing(2),
paddingTop: theme.spacing(2)
}
di dalam komponen kelas?
Terima kasih
saya menggunakan withStyles
alih-alih makeStyle
seperti ini ...
import React from 'react';
import { withStyles } from '@material-ui/core/styles';
const styles = (theme) => ({
fab: {
position: 'fixed',
bottom: theme.spacing(2),
right: theme.spacing(2),
},
});
class LoginComponent extends React?Component {
render() {
const { classes } = this.props;
/** your UI components... */
}
}
export default withStyles(syles)(LoginComponent);
@ Ess-Soft Bagaimana LoginComponent
dirender dari komponen induk?
ThemeProvider
dalam komponen induk?Akan lebih berguna jika Anda membagikan cuplikan kode dari komponen induk.
Saya melakukan hal yang sama dengan @ Ess-Soft dan menambahkan widthTheme sebelum withStyles
withTheme(withStyles(useStyles)(LoginComponent ))
maka Anda dapat menggunakan theme
bahkan di dalam render
Adakah yang bisa menjelaskan hal dengan gaya. Sejujurnya saya dapat mengatakan ketika saya melihat hal-hal seperti ini saya pikir lol ayolah, Angular jauh lebih normal. 3 jam hari ini mencari dan mencari jawaban dan kemudian saya menemukan ini.
@ xtianus79 API ini juga bekerja dengan komponen kelas: https://material-ui.com/styles/basics/#higher -order-component-api.
@oliviertassinari dapatkah Anda menunjukkan contoh yang berarti dengan grid? lol itulah yang saya coba lakukan dan saya terjebak di sana. Saya menggunakan makeStyles dan createStyles dan saya tidak tahu bagaimana melakukannya tanpa fungsi? Bisakah Anda membantu dengan itu.
@ xtianus79 Anda akan menemukan bantuan lebih lanjut di StackOverflow
@oliviertassinari untuk masalah khusus dan kasus penggunaan itu Saya tidak melihatnya.
Ummm. bahkan masih https://material-ui.com/styles/basics/#higher -order-component-api tidak menjawab bagaimana cara menggunakan 'theme'? mengapa hanya mendukung komponen fungsional dengan Hooks? orang memiliki kode warisan atau kebutuhan untuk komponen berbasis kelas.
@DewangS See the withTheme()
API: https://material-ui.com/styles/api/#withtheme-component-component.
Komentar yang paling membantu
saya menggunakan
withStyles
alih-alihmakeStyle
seperti ini ...