मैं इस github project का जिक्र कर रहा हूं और मैं KeyPad.js घटक का एक सरल परीक्षण लिखने की कोशिश कर रहा हूं।स्टाइल घटक घटक के साथ जेस्ट प्रदाता
मैंने इस मामले पर खोले गए मुद्दों को देखा है और एक सुझाव दिया गया है कि विषय को घटक के रूप में थीम को पास करना है। यह समाधान एंजाइम के साथ काम नहीं करेगा।
मेरे मामले में समस्या यह है कि बच्चों के घटक थीमप्रोवाइडर के माध्यम से विषय प्राप्त करते हैं और परीक्षण कार्य करने में सक्षम होने के लिए मुझे सभी को थीम प्रोप जोड़ने की आवश्यकता होगी।
उदाहरण:
const tree = renderer.create(
<KeyPad
theme={theme}
cancel={()=> true}
confirm={()=> true}
validation={()=> true}
keyValid={()=>true} />
).toJSON();
expect(tree).toMatchSnapshot();
कीपैड बहुत विधि प्रस्तुत करना, इस तरह बदल जाएगा विषय के साथ हर जगह
render() {
let { displayRule, validation, label, confirm, cancel, theme, keyValid, dateFormat } = this.props
return (
<Container theme={theme}>
<Content theme={theme}>
<Header theme={theme}>
<CancelButton theme={theme} onClick={cancel}>
<MdCancel />
</CancelButton>
<Label>{label}</Label>
<ConfirmButton theme={theme} onClick={() => confirm(this.state.input)} disabled={!validation(this.state.input)}>
<MdCheck />
</ConfirmButton>
</Header>
<Display
theme={theme}
value={this.state.input}
displayRule={displayRule}
dateFormat={dateFormat}
cancel={this.cancelLastInsert} />
<Keys>
{[7, 8, 9, 4, 5, 6, 1, 2, 3, '-', 0, '.'].map(key => (
<Button
theme={theme}
key={`button-${key}`}
theme={theme}
click={(key) => this.handleClick(key) }
value={key}
disabled={!keyValid(this.state.input, key, dateFormat)} />
))}
</Keys>
</Content>
</Container>
)
}
सहारा मैं इस समाधान की तरह नहीं । कोई भी इस के साथ मेरी मदद कर सकता है?
धन्यवाद
क्या आप ThemeProvider के बजाय सभी घटकों में संदर्भ का उपयोग करने का सुझाव दे रहे हैं? मुझे नहीं लगता कि स्टाइल कॉम्पोनेंट के साथ युग्मन घटक अब और सही क्यों नहीं बनायेगा। शैलियों को ओवरराइड किया जा सकता है। – Pietro
@Pietro no im आपको यह तरीका रखने का सुझाव देता है कि आपके पास यह तरीका है। यदि आप एक वास्तविक प्रतिक्रिया घटक होने के लिए ' 'चाहते हैं तो यह सबसे अच्छा समाधान है –