嘿,我正在尝试在使用该文件的同一个文件中编写一个组件。这样我就可以一次又一次地调用该组件。我只是不想复制每个“组件”的粘贴代码。当我调用该组件时,它给了我这个错误:
Text strings must be rendered within a <Text> component.
我的完整存储库:MealAPP 我正在处理此文件:Filters Screen 这是我的代码:
//Component that i want to call
const FilterSwitch = props => {
return (
<View style={styles.filterContainer}>
<Text>{props.label}</Text>
<Switch
trackColor={{ true: Colors.primaryColor }}
thumbColor={Platform.OS === "android" ? Colors.primaryColor : ""}
value={props.state}
onValueChange={props.onChange}
/>
</View>
);
};
const FilterScreen = props => {
const [isGlutenFree, setIsGlutenFree] = useState(false);
return (
<View style={styles.screen}>
// i am calling here
<FilterSwitch
label="Gluten-free"
state={isGlutenFree}
onChange={newValue => setIsGlutenFree(newValue)}
/>
</View>
);
};
堆栈跟踪:
Running application on Android SDK built for x86.
Text strings must be rendered within a <Text> component.
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:4137:14 in <anonymous>
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:4134:2 in createTextInstance
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:15909:12 in completeWork
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:19409:28 in completeUnitOfWork
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:19380:30 in performUnitOfWork
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:19347:39 in workLoopSync
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18997:22 in renderRoot
* [native code]:null in renderRoot
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18709:28 in runRootCallback
* [native code]:null in runRootCallback
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:5642:32 in runWithPriority$argument_1
- node_modules\scheduler\cjs\scheduler.development.js:643:23 in unstable_runWithPriority
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:5638:22 in flushSyncCallbackQueueImpl
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:5627:28 in flushSyncCallbackQueue
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18796:28 in batchedUpdates$1
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2709:30 in batchedUpdates
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2794:17 in batchedUpdates$argument_0
- node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2870:28 in receiveTouches
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:436:47 in __callFunction
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:111:26 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:384:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:110:17 in __guard$argument_0
* [native code]:null in callFunctionReturnFlushedQueue
答案 0 :(得分:2)
您确定这是您的所有代码吗?通常,当您真正尝试呈现未包装在Text标记中的纯文本时,会发生此类错误。
答案 1 :(得分:1)
您的ES-lint可能在第31行上错误地生成了{“”},如在github文件FiltersScreen.js
,here中所示。这也发生在我身上,有时发生在>
和<
之间的空白处。确保组件后没有空格(换行可以)。